MVC5高级编程_表单和html辅助方法
使用HTML辅助方法关键在于 确保HTML页面链接中的URL指向正确的位置、表单元素拥有适用于模型绑定的合适名称和值,以及当模型 绑定失败时其他元素能够显示相应的错误提示消息。
1.表单的使用
@using(Html.BeginForm("Searhch", "Home", FormMethod.Get,new { target = "_blank", @class="editForm", data-validatable=true })){
<input type="text" name="q" />
<input type="submit" value="Search" />
}
在保护代码安全、代码优雅的前提下,也给出了适当程序的控制。第4个参数中 在和关键字冲突时,在前面加一个@符号,在渲染HTML属性中的下划线转换为连字符。
2.HTML辅助方法
所有输出模型值的辅助方法都会在渲染之前,对值进行HTML编码。可以避免站点脚本攻击。
弱类型辅助方法:
Html.TextBox方法渲染一个type特性为text的input标签。
Html.TestArea方法渲染一个能够显示多行文本的<textarea>元素
Html.Label辅助方法返回一个<label>元素
Html.DropDownLIst 返回一个单项选择的<select>元素。
Html.ListBox 返回一个多项选择的<select>元素。
上面这两个方法使用时还需要些特定的信息,SelectListItem对象集合,可以使用框架中的SelectList或MultiSelectLIst辅助方法类来构建。
Html.ValidationMessage,当ModelState中某一字段出现错误时,可以显示相应的错误提示消息。
对应强类型辅助方法:
Html.TextBoxFor Html.TestAreaFor Html.LabelFor Html.DropDownLIstFor Html.ListBoxFor Html.ValidationMessageFor
模板辅助方法:
Html.Editor Html.EditorFor 方法可能通过使用数据注解来改变生成的HTML
生成只读的HTML辅助方法
Html.Display Html.DisplayFor
Html.Hidden 辅助方法用于渲染隐藏的输入元素,它的强类型版本是Html.HidderFor
Html.Password 用于渲染密码字段。强类型Html.PasswordFor
Html.RadioButton 使用时多个方法组合在一起,生成一组单项选择的Html. 强类型Html.RadioButtonFor
Html.CheckBox 唯一一个渲染两输入元素的辅助方法。它生成一个选中的CheckBox类型的input,一个false值的隐藏域。这样做的原图是HTML中浏览器只提交选中的复选框的值,生成两个可以保证这个复选框Name属性有一个值会被提交。
渲染辅助方法:
Html.AcitonLink方法能够渲染一个超链接,重载版本还可添加入路由的信息。
Html.RouteLin 方法和Html.ActionLink模式相同,只能接受路由名称,而不能接收控制器名称和操作名称。
URL辅助方法:
与HTML的ActionLink和RouteLink辅助方法相似,但不是以HTML标记的形式返回构建的URL,而是以字符串的形式返回URL。
Url.Action显示文本形式的URL。
Url.RouteUrl和Action遵循同样的模式,但它只接受路由名,不接收控制器和操作名称。
Url.Content 把应用程序的相对路径转换成绝对路径。
Html.Partial用于将部分视力渲染成字条串,它的重载版本可以为视力传递Model强类型数据对象和iewDataDicionary对象。 Html.RenderPartial方法不是返回字符串。而是直接写入响应输出流。使用时,必须把RenderPartial放入代码块中,而不能入在代码表达式中。
Html.Action Html.RenderAction 请控制器并获取响应的字符串。
Ajax的辅助方法在后面介绍