Scott Gu教你使用ASP.NET MVC 2新功能(3)

  • 微软前日发布了ASP.NET MVC 2的第一个公开预览版。在这篇博文中,.NET开发总管Scott Gu将详细介绍应该如何使用其中的新功能。

强类型UI辅助方法

ASP.NET MVC V2包含了新的HTML UI辅助方法,这些辅助方法允许你在引用视图模板的模型对象时使用强类型的lambda表达式。这可以促成更好的视图编译时检查(这样缺陷是在编译时发现 而不是在运行时发现),还能促成视图模板中更好的代码intellisense支持。

你可以在下面看到一个示范更好intellisense的例子,注意我在使用新的Html.EditorFor()辅助方法时是如何得到Customer模型对象属性的完整列表的:

示范更好intellisense的例子  

第一个预览版提供对新的Html.EditorFor(), Html.LabelFor(), 和 Html.DisplayFor() 辅助方法的内置支持。将在这个星期发布的更新过的MVC Futures程序集还将包含对另外的Html.TextBoxFor(), Html.TextAreaFor(), Html.DropDownListFor(), Html.HiddenFor(), 和 Html.ValidationMessageFor()辅助方法的支持(随着时间的推移,这些方法也会移到核心ASP.NET MVC 2程序集中去)。

在下面,你可以看到Customer创建场景下“Create”视图模板的一个更新了的版本。注意,在UI辅助方法中,我们不是使用字符串表达式来 引用Customer对象,而是使用强类型的lambda表达式。我们在所有这些方法中都可以得到完整的 intellisense 和 编译时检查:

得到完整的 intellisense 和 编译时检查  

上面的Html.LabelFor()辅助方法生成< label for="Name">Name:< /label> HTML 标识。

Html.EditorFor()辅助方法可以用于任何数据类型值。在默认情形下,它很聪明,会根据要编辑的类型输出合适的HTML < input/>元素。譬如,它会为上面的前4个属性(是字符串和整数类型)生成< input type=”text”/>元素,会为最后的那个“IsActive” 属性生成< input type=”checkbox”/>元素,因为这个属性是布尔值类型。

除了支持简单的数据类型外,Html.EditorFor()辅助方法还允许你传递给它拥有多个属性的比较复杂的对象。在默认情形下,它会对对象的 所有公开属性进行循环,输出< label>, < input/> 元素,以及它能找到的每个属性的任何合适的验证消息。例如,我们可以重写上面的视图,对Customer对象只做单个Html.EditorFor()调 用,从概念上来说输出跟上面一样的标识:

对Customer对象只做单个Html.EditorFor()调用  

强类型的辅助方法允许你在Customer视图类的属性上饰以[DisplayName]特性,来控制为每个属性输出的标签字符串(例如:不是用 “IsActive”作为标签文字,我们可以加一个[DisplayName(“Is Active Customer:”)]特性)。

你也可以加一个[ScaffoldColumn(false)]特性,来表示,在象上面把一个复杂的对象传给Html.EditorFor()那样的场景下,某个特定的属性完全不应该显示出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值