这是我针对即将发布的ASP.NET MVC 2所撰写的
贴子系列的第一篇,这个博客贴子将讨论 ASP.NET MVC 2中新加的强类型HTML辅助方法。
现有的HTML辅助方法ASP.NET MVC 1中发布了一套HTML辅助方法,可以用来在视图模板中帮助生成HTML界面。例如,要输出一个文本框,你可以在你的.aspx视图模板中使用 Html.TextBox()辅助方法编写下列代码:
附件:
image_468F9F90.png 上面辅助方法的第一个参数提供了文本框的名称及 id,第二个参数指定了它该有的值,然后上面的辅助方法会显示象下面这样的HTML到浏览器:
附件:
image_797F2FF7.png 新的强类型HTML辅助方法大家对ASP.NET MVC 2要求的一个常用特性是,要我们支持强类型的HTML辅助方法,这样的辅助方法使用 lambda 表达式来引用传到视图模板中的模型或视图模型。这可以促成更好的编译时视图检查(可以在编译时发现缺陷,而不是在运行时),还可以促成视图模板中更好的代码 intellisense支持。
新的强类型HTML辅助方法现在已经内置于ASP.NET MVC 2中了,这些方法使用"Html.HelperNameFor()” 的命名规范。例如,Html.TextBoxFor(), Html.CheckBoxFor(), Html.TextAreaFor()等等。它们支持使用lambda表达式来指定元素的名称和id,以及要显示的值。
例如,除了上面的Html.TextBox()辅助方法外,使用ASP.NET MVC 2,我们现在还可以使用新的Html.TextBoxFor()辅助方法:
附件:
image_1BF3BEB3.png 注意上面,我们不再需要指定 “ProductName” 字符串参数,lambda表达式是相当灵活的,除了值以外,我们还可以获取我们模型对象中的属性/字段的名称。
因为这些HTML辅助方法是强类型的,编写lambda表达式时我们还可以在Visual Studio中得到完整的intellisense支持:
附件:
image_566EBE87.png 显示的HTML跟前面的后期绑定的HTML辅助方法版本的输出是一样的:
附件:
image_797F2FF7.png 内置于ASP.NET MVC 2中的强类型HTML辅助方法列表ASP.NET MVC 2对下列强类型的HTML辅助方法提供内置支持:
HTML 元素辅助方法: * Html.TextBoxFor()
* Html.TextAreaFor()
* Html.DropDownListFor()
* Html.CheckboxFor()
* Html.RadioButtonFor()
* Html.ListBoxFor()
* Html.PasswordFor()
* Html.HiddenFor()
* Html.LabelFor()
其他辅助方法: * Html.EditorFor()
* Html.DisplayFor()
* Html.DisplayTextFor()
* Html.ValidationMessageFor()
我会在本系列的后期贴子中讨论ASP.NET MVC 2中改进了的“自动脚手架(auto-scaffold)"功能时,对新的Html.EditorFor() 和 Html.DisplayFor()辅助方法做进一步介绍。在本系列的下一个博客贴子中讨论ASP.NET MVC 2中改进了的验证支持时,我们还将使用Html.ValidationMessageFor()辅助方法。