使用VS2012新建一个带有样例的MVC程序,在视图文件里我发现了这样的东东:
@Html.LabelFor(m => m.UserName) <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
Html.LabelFor 我猜他类似于<asp:label> 吧
Url.Content 我猜用来Build URL的。
分别对应HtmlHelper 和UrlHelper。
再有:
@Html.TextBoxFor(m => m.UserName)
生成的代码是:
<input id="UserName" name="UserName" type="text" value="">
看来生成一个类型text的input标签,id和name都是model的“UserName" 字段,
那么我想,如果input还有其他属性呢?比如class?
查看TextBoxFor的构造函数:
@Html.TextBoxFor(m => m.UserName, new {@class="aa"})
new {@class="aa"} 是个什么东东?匿名构造函数?不知道,先这么用吧
查一查,然后记录下来,准备随时copy:
1.ActionLink 生成超链接
@Html.ActionLink("来点我", "Index", "Home")%>
带有QueryString的写法
@Html.ActionLink("来点我", "Index", "Home", new { page=1 },null)%>
@Html.ActionLink("来点我", "Index", new { page=1 })%>
有其它Html属性的写法
@Html.ActionLink("来点我", "Index", "Home", new { id="link1" })%>
@Html.ActionLink("来点我", "Index",null, new { id="link1" })%>
QueryString与Html属性同时存在
@Html.ActionLink("来点我", "Index", "Home", new { page = 1 }, new { id = "link1" })%>
@Html.ActionLink("来点我", "Index" , new { page = 1 }, new { id = "link1" })%>
生成结果为:
<a href="/">来点我</a>
带有QueryString的写法
<a href="/?page=1">来点我</a>
<a href="/?page=1">来点我</a>
有其它Html属性的写法
<a href="/?Length=4" id="link1">来点我</a>
<a href="/" id="link1">来点我</a>
QueryString与Html属性同时存在
<a href="/?page=1" id="link1">来点我</a>
<a href="/?page=1" id="link1">来点我</a>