C# ASP.NET MVC HtmlHelper用法大全

来源:互联网 发布:网络计算器在线使用 编辑:程序博客网 时间:2024/04/30 21:02

因为是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因。

如有冒犯请联系本人,或删除,或标明出处。

因为好的文章,以前只想收藏,但连接有时候会失效,所以现在碰到好的直接转到自己这里。

原文 出处http://www.cnblogs.com/fishtreeyu/archive/2011/03/23/1992498.html

 

HTML扩展类的所有方法都有2个参数:

以textbox为例子

public static string TextBox( this HtmlHelper htmlHelper, string name, Object  value,IDictionary<string, Object> htmlAttributes )

public static string TextBox( this HtmlHelper htmlHelper, string name, Object  value,Object htmlAttributes )

这2个参数代表这个html标签的属性集合。使用方法如下。

 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>

2.RouteLink

?
跟ActionLink在功能上一样。
<%=Html.RouteLink("关于","about", new { })%>
带QueryString
<%=Html.RouteLink("关于","about", new { page = 1 })%>
<%=Html.RouteLink("关于","about", new { page = 1 }, new { id = "link1" })%>
  
生成结果:
<a href="/about">关于</a>
<a href="/about?page=1">关于</a>
<a href="/about?page=1"id="link1">关于</a>

3.Form 2种方法

?
<%using(Html.BeginForm("index","home",FormMethod.Post)){%>
<%} %>
 
<%Html.BeginForm("index","home", FormMethod.Post);//注意这里没有=输出%> 
<%Html.EndForm(); %>
 
生成结果:
<form action="/home/index"method="post"></form>

4.TextBox , Hidden ,

?
<%=Html.TextBox("input1") %>
<%=Html.TextBox("input2",Model.CategoryName,new{ @style = "width:300px;" }) %>
<%=Html.TextBox("input3", ViewData["Name"],new{ @style = "width:300px;" }) %>
<%=Html.TextBoxFor(a => a.CategoryName,new { @style ="width:300px;" })%>
  
生成结果:
  
<input id="input1"name="input1"type="text" value="" />
<input id="input2"name="input2"style="width:300px;"type="text" value="Beverages" />
<input id="input3"name="input3"style="width:300px;"type="text" value="" />
<input id="CategoryName"name="CategoryName"style="width:300px;"type="text" value="Beverages" />

5.TextArea

?
<%=Html.TextArea("input5", Model.CategoryName, 3, 9,null)%>
<%=Html.TextAreaFor(a => a.CategoryName, 3, 3,null)%>
  
生成结果:
<textarea cols="9"id="input5" name="input5" rows="3">Beverages</textarea>
<textarea cols="3"id="CategoryName"name="CategoryName"rows="3">Beverages</textarea>

6.CheckBox

?
<%=Html.CheckBox("chk1",true) %>
<%=Html.CheckBox("chk1",new { @class="checkBox"}) %>
<%=Html.CheckBoxFor(a =>a.IsVaild,new { @class= "checkBox"})%>
 
生成结果:
 
<input checked="checked"id="chk1" name="chk1" type="checkbox" value="true" /><input name="chk1" type="hidden" value="false" />
 
<input class="checkBox"id="chk1" name="chk1" type="checkbox" value="true" /><input name="chk1" type="hidden" value="false" />
 
<input checked="checked"class="checkBox"id="IsVaild"name="IsVaild"type="checkbox"value="true"/><input name="IsVaild"type="hidden"value="false"/>

7.ListBox

?
<%=Html.ListBox("lstBox1",(SelectList)ViewData["Categories"])%>
<%=Html.ListBoxFor(a => a.CategoryName, (SelectList)ViewData["Categories"])%>
 
生成结果:
<selectid="lstBox1"multiple="multiple"name="lstBox1">
<option value="1">Beverages</option>
<option value="2">Condiments</option>
<option selected="selected"value="3">Confections</option>
<option value="4">Dairy Products</option>
<option value="5">Grains/Cereals</option>
<option value="6">Meat/Poultry</option>
<option value="7">Produce</option>
<option value="8">Seafood</option>
</select>
<selectid="CategoryName"multiple="multiple"name="CategoryName">
<option value="1">Beverages</option>
<option value="2">Condiments</option>
<option value="3">Confections</option>
<option value="4">Dairy Products</option>
<option value="5">Grains/Cereals</option>
<option value="6">Meat/Poultry</option>
<option value="7">Produce</option>
<option value="8">Seafood</option>
</select>

8.DropDownList

?
<%= Html.DropDownList("ddl1", (SelectList)ViewData["Categories"],"--Select One--")%>
<%=Html.DropDownListFor(a => a.CategoryName, (SelectList)ViewData["Categories"],"--Select One--",new { @class= "dropdownlist"})%>
  
生成结果:
<selectid="ddl1" name="ddl1">
<option value="">--Select One--</option>
<option value="1">Beverages</option>
<option value="2">Condiments</option>
<option selected="selected"value="3">Confections</option>
<option value="4">Dairy Products</option>
<option value="5">Grains/Cereals</option>
<option value="6">Meat/Poultry</option>
<option value="7">Produce</option>
<option value="8">Seafood</option>
</select>
<selectclass="dropdownlist"id="CategoryName"name="CategoryName">
<option value="">--Select One--</option>
<option value="1">Beverages</option>
<option value="2">Condiments</option>
<option value="3">Confections</option>
<option value="4">Dairy Products</option>
<option value="5">Grains/Cereals</option>
<option value="6">Meat/Poultry</option>
<option value="7">Produce</option>
<option value="8">Seafood</option>
</select>

9.Partial 视图模板

?
webform里叫自定义控件。功能都是为了复用。但使用上自定义控件真的很难用好。
<% Html.RenderPartial("DinnerForm"); %>  看清楚了没有等号的。