MVC3常用的Html Helper

                                       服务端代码                                                                                                     生成客户端

1.ActionLink 其中最常用的就是Html.ActionLink
1.1基本的使用方式
@Html.ActionLink("这是一个连接", "Index", "Home")                                    <a href="/">这是一个连接</a>  ActionLink中的三个参数分别为 (显示的文字 Action Controller)
其中Controller可以省略,省略时指向同一Controller下的Action。
1.2ActionLink中QueryString与Html属性设置
1: 带有QueryString的写法
@Html.ActionLink("这是一个连接", "Index", "Home", new { page=1 })           <a href="/?page=1">
@Html.ActionLink("这是一个连接", "Index", new { page=1 ,id=2})                <a href="/?page=1&id=2">
这样就可以使用ActionLink生成近乎所有的地址连接了。注意,如果连接中不涉及到action及controller就没有必要使用ActionLink,而是直接写HTML代码就可以了,
例如

1:<a href="#1">一章</a>

2:<ahref="javascript:void(0)"onclick="delete();">删除</a>
2.RouteLink2.1与ActionLink
RouteLink与ActionLink相差无几,只是它的地址是由Route生成拿上面的例子
1: @Html.ActionLink("这是一个连接", "Index", "Home") 来说,
如果用RouteLink来写就是
1: @Html.RouteLink("这是一个连接", new { controller="Home",action="Index"})
而带上QueryString的ActionLink
@Html.ActionLink("这是一个连接", "Index" , new { page = 1 })
@Html.RouteLink("这是一个连接", new { action = "index", page = 1 }, new { id="link1"})
其实就是用一个新建立的RouteValueDictionary的对象(new{}所实例化的对象将会等价转换为RouteValueDictionary)来替原来的Action,Controller字符串

3.Url.Action

<a href="@Url.Action("we","Home")">测试</a>                                                                  <a href="Home/we ">测试</a>

<a href="@Url.Action("WSShopFlow", "Profile", new { Id = @demo.Id)">@demo.Name</a>    <a href="Profile/WSShopFlow?id=?">???</a>

其中参数Id一定要与Profile控制器下的WSShopFlow方法中的参数一样,可以用多个有多个参数.

4. 其他

public class Model
    {
        //[Required]           注释的区别
        [Display(Name = "User name显示")]
        public string UserName { get; set; }
 
        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }
       
       [Required]  
        //[Display(Name = "Remember me?")] //注释的区别
        public bool RememberMe { get; set; }
    }
@Html.RadioButton("Q",1)                                                                                    <inputid="dsd"name="dsd"type="radio"value="1" />
@Html.RadioButtonFor( )  
@Html.LabelFor(m => m.UserName)                                                                   <label for="UserName">User name显示</label>
@Html.Label("DSADS")                                                                                           <label for="DSADS">DSADS</label>
@Html.LabelFor(m => m.RememberMe)                                                              <label for="RememberMe">RememberMe</label>
注意在Model类中的UserName,RememberMe字段中有“[Display]”属性 ,其中RememberMe被注释掉了,在显示给客户端的时候就默认显示了RememberMe的字段名称,而UserName的就显示了“[Display]”的解释 这就是区别一 :取了别名。
@Html.CheckBox("bixuqiangleixing",true)
@Html.CheckBoxFor(m => m.RememberMe,true)
客户端分别为:
<input checked="checked" id="bixuqiangleixing" name="bixuqiangleixing" type="checkbox" value="true" />
<input name="bixuqiangleixing" type="hidden" value="false" />
 
<input data-val="true" data-val-required="The RememberMe field is required." id="RememberMe" name="RememberMe" type="checkbox" value="true" /><inputname="RememberMe"type="hidden"value="false" />
   在在Model类字段中有“[Required] ” 注解也就有了启用了客户端验证:data-val=“true" ;默认生成了错误验证提示data-val-required=“The"+字段名称+“is required”这就是区别二
 
 @Html.ValidationMessageFor(m => m.UserName)  
客户端: 
<span class="field-validation-valid" data-valmsg-for="UserName" data-valmsg-replace="true"></span>
 
@Html.Password("THIS")
@Html.PasswordFor(m => m.Password)
客户端分别为:
<inputid="THIS"name="THIS"type="password" />
<input data-val="true" data-val-required="The Password field is required." id="Password" name="Password" type="password" />
@Html.Hidden("hhhh")                                                                                    <inpt id="hhhh" name="hhhh" type="hidden" value="" />
 
@Html.DisplayFor(modelItem => item.LastName)
直接这个属性的值
在第三个参数是控制器 如果在同一个控制器下 可以略写
@Html.EditorFor(model => model.EnrollmentDate)
显示这个属性的值
 
@Html.DropDownListFor(x=>x.Gender,new[]{new SelectListItem(){Text="我是男的", Selected=true, Value="true"},new SelectListItem(){Text="我是女的", Selected=false, Value="false"}},"请选择你的性别")
客户端:
select id="Gender" name="Gender">
<option value="">请选择你的性别</option>
<option selected="selected" value="true">我是男的</option>
<option value="false">我是女的</option>
</select>
 
@using (Html.BeginForm("LogOn","Account")) { }
<form action="/Account/LogOn" method="post"> </form>
 
区别三就是服务端Html中带有“For”的只能是强类型数据:如:model => model.EnrollmentDate
业精于勤荒于嬉 行成于思毁于随
原文地址:https://www.cnblogs.com/mistor/p/2652644.html