• 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
    业精于勤荒于嬉 行成于思毁于随
  • 相关阅读:
    ad_imh
    pc send instructor pc ad
    数据、模型、IT系统认知
    量化投资认知
    LinAlgError: Last 2 dimensions of the array must be square
    转:Hadoop大数据开发基础系列:七、Hive基础
    Run-Time Check Failure #2
    0x00007FFC8C5325E7 (ucrtbased.dll)处(位于 DataStructure.exe 中)引发的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。
    栈与后缀表达式C实现
    Jupyter使用
  • 原文地址:https://www.cnblogs.com/mistor/p/2652644.html
Copyright © 2020-2023  润新知