传统的Html元素不能和服务端数据进行绑定 HtmlHelper类提供了一系列的方法来生成Html元素 并可以实现与数据绑定在一起 然后生成Html
Html.BeginForm(actionName , controllerName , FormMethod , htmlAttribute)
创建一个表单
actionName 和 controllerName
这两个参数表示表单要提交到哪个controllerName下的哪个Action方法中
FormMethod
此参数是一个枚举 表示表单提交方式 GET or POST
htmlAttribute
表示form元素的Html属性 是一个object对象 使用new {html属性名字="值"} class也是html属性 但同时它是C#关键字 只能这样指定:new {@class="formstyle"}
Html.EndForm()
表示表单结束 如
1 @Html.BeginForm("index", "default", FormMethod.Post, new {id="form1"}) 2 <input type="text" /> 3 @{Html.EndForm();}
BeginForm方法返回System.Web.Mvc.Html.MvcForm类型 如果不用中括号括起来 则表示要输出该方法返回的值 EndForm无返回值 所以也需要使用中括号括起来 最后一个参数通过objecr来指定它的Html属性
Html.Raw()
@Html.Raw() 方法输出带有html标签的字符串,如:
@Html.Raw("<div style='color:red'>输出字符串</div>")
结果:输出字符串
Html.RadioButton(name,value,Ischecked,htmlAttribute)
创建单选按钮
name
单选按钮的name
value
单选按钮的值
Ischecked
是否是选中状态
1 @{Html.BeginForm("index", "default", FormMethod.Post);} 2 男人 @Html.RadioButton("radiobtn","man",true,new{@class="radioStyle"}) 3 女人 @Html.RadioButton("radiobtn","woman",false,new{@class="radioStyle"}) 4 @{Html.EndForm();}
Html.RadioButtonFor(expression,value,htmlAttribute)
同样是创建单选按钮的方法 但+For后缀的方法可以使用强类型作为参数expression的参数 推导出类型的属性 它可以将类型的属性名字作为表单元素的name的值
expression
类型为System.Linq.Express.Expression.<Fun<dynamic,Tproperty>>的表达式 如
1 @model Course.Models.Employee 2 @{Html.BeginForm("index", "default", FormMethod.Post);} 3 北京 @Html.RadioButtonFor(n=>n.Address,"北京",new{@class="radioStyle",@checked="checked"}) 4 上海 @Html.RadioButtonFor(n=>n.Address,"上海",new{@class="radioStyle"}) 5 @{Html.EndForm();}
Html.CheckBox()
创建复选框
不建议使用此方法来创建复选框 服务端不好获取值 请直接使用input 注意每个复选框需要有value值 否则获取的选中的复选框的值永远是on
1 <input type="checkbox" class="Book" value="1" name="Books" checked="checked"/>民谣<br/> 2 <input type="checkbox" class="Book" value="2" name="Books" checked="checked"/>电子<br/> 3 <input type="checkbox" class="Book" value="3" name="Books" />低保真<br/>
在Action中这样获取
1 public ActionResult Editor(int[] Books) 2 {