1.HTML铺助实现链接(如果不是aspx是mvc <%:%>改成@即可)
第一种:<a href="/User/Index">链接到User/Index</a><br />//当路由规则(App_Start文件夹下的RouteConfig)发生变化时(比如/变成-)这种方法就失效了 第二种:<a href="<%:Url.Action("Index","User") %>">链接</a><br />跳转到User控制器下的Index方法 第三种:<%:Html.ActionLink("链接不带参","Index","User",new {name="itcast"}) %><br /> <%:Html.ActionLink("链接不带参","Index","User") %><br/>
2.HTML铺助方法实现一个下拉框
public ActionResult HtmlHelper() { ViewBag.city = new List<SelectListItem>() { new SelectListItem(){Selected =true,Text = "北京",Value = "1"}, new SelectListItem(){Selected =false,Text = "上海",Value = "2"}, new SelectListItem(){Selected =false,Text = "广州",Value = "3"} }; ViewBag.demo = "你好"; return View(); }
前台页面
<div> <%:Html.DropDownList("city") %> //HTML铺助方法会自动帮你把名字相同的进行匹配,比如city和ViewBag.City
//ViewBage.name是ViewData["name"]的一个动态封装器 <%:Html.TextBox("demo") %><br /> 男<%:Html.RadioButton("gender","1",false) %> 女<%:Html.RadioButton("gender","0",true) %> </div>
3.重写自己的HTML铺助方法
定义一个类,myhtmlhelper,扩展htmlhelper方法 静态类,静态方法,this关键字
public static class myhtmlhelper { public static string myLabel(this HtmlHelper helper, string txt) { //要被编码化<span>属于html标签被编码了,就不死html标签是一个txt了 return string.Format("<span>{0}</span>",txt); } public static HtmlString myhtmlstringLabel(this HtmlHelper helper, string txt) { //不被编码化 return new HtmlString(string.Format("<span>{0}</span>", txt)); } }
<%:Html.myhtmlstringLabel("我的扩展方法") %>//调用的时候会发现需要引用System.Web.Mvc
namespace System.Web.Mvc/*命名空间改成引用的命名空间,前台页面就无需引用了*/ { /// <summary> /// 扩展htmlhelper方法 /// </summary> public static class myhtmlhelper { public static string myLabel(this HtmlHelper helper, string txt) { //要被编码化 return string.Format("<span>{0}</span>",txt); } public static HtmlString myhtmlstringLabel(this HtmlHelper helper, string txt) { //不被编码化 return new HtmlString(string.Format("<span>{0}</span>", txt)); } } }
4......................继续学习中,发现MVC和webform其实有很多相似处