zoukankan      html  css  js  c++  java
  • 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
    业精于勤荒于嬉 行成于思毁于随
  • 相关阅读:
    WSP部署错误—SharePoint管理框架中的对象“SPSolutionLanguagePack Name=0”依赖其他不存在的对象
    Elevate Permissions To Modify User Profile
    Error with Stsadm CommandObject reference not set to an instance of an object
    ASP.NET MVC3添加Controller时没有Scaffolding options
    测试使用Windows Live Writer写日志
    配置TFS 2010出现错误—SQL Server 登录的安全标识符(SID)与某个指定的域或工作组帐户冲突
    使用ADO.NET DbContext Generator出现错误—Unable to locate file
    CSS
    HTML DIV标签
    数据库
  • 原文地址:https://www.cnblogs.com/mistor/p/2652644.html
Copyright © 2011-2022 走看看