ASP.NET MVC 2 RC 1版本发布时,很多新功能让大家眼前一亮。在专访微软MVP衣明志老师时,也专门讨论过ASP.NET MVC 2。此次发布的ASP.NET
MVC 2 RC 2,会有新的改进,这些也能为大家今后的开发工作起到良好的效果。
目前次版本只支持的IDE只有Visual Studio 2008(.NET3.5),针对Visual Studio 2010的RC版本将会在不久后提供下载。这次ASP.NET
MVC 2 RC 2的升级主要修复了一些bug,添加了一些API以及改进了了一些而方法。
从ASP.NET MVC 2 RC 1到ASP.NET MVC 2 RC 2变化主要如下:
1、在RC1中新增的ASP.NET MVC 2 validation(对ViewData中Model数据验证)功能,现在已经由 model-validation
取代了 input-validation 。也就是说,如果你使用 model binding (将Model属性自动绑定到View中,并自动绑定从View中Post回Controller的值),那么所有的属性都将被验证一遍,而不仅仅是变更后的数据。
(注:个人认为这在某些情况下反而会带来不便,比如当你只想绑定一个模型中部分属性,以此作为一个暂时的“容器”的时候,可能会使ModelState.IsValid变成false。不知是否可以有选择性地使用新的特性)
2、新的“强类型HTML(<input>标签)的辅助方法”,现在支持了Lambda表达式,从而可以使你使用到数组(array)或者集合索引(collection
indexes)。例如现在可以这么做:Html.EditorFor(m=>m.Orders[i]) ,这段代码将会生成以序列i为name、具体数组中的值为value的<input>标签。
(注:这一点在DropDownList中将极为有用。)
3、重新调整过的Html.EditorFor() 和 Html.DisplayFor() 扩展方法,在默认情况下将自动对应简单属性。这使得自动构造Form表单变为更加简单了。
(注:终于有点像某些“前辈”MVC的Form了,希望这种改进可以来得更猛烈些)
4、model验证所使用的客户端脚本中的id现在更清晰了。在RC1中,id会像这样:form0_ prefix,现在id改为了以属性名称为前缀,如:unitPrice_validationMessage。
(注:这点变化可以使前台开发人员对页面的控制更加完整)
5、Html.ValidationSummary() 方法增加了一个参数,可以控制汇总信息显示的级别,是整个Model级别,或是单个属性级别。
(注:变的更人性化了,有的页面我们只需要让它显示一个tip就可以了,不需要把所有的都重复列出来)
6、AccountController中使用默认的ASP.NET MVC Web Application模板更加整洁了。
7、脚手架(scaffolding)功能现在提供了在Controller中的Delete方法,以及对的View页面(模板)。
8、jQuery 1.4.1被包含到了项目中,取代了原先的1.3.2版本。同步更新的还有用来智能提示的vsdoc文件。
9、其他一些很有意义的改进,比如第2点中所说的“强类型HTML(<input>标签)的辅助方法”现在更快了。
次版本的源代码可以在这里下载到:http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=39978
ASP.NET MVC延伸阅读
ASP.NET MVC是微软官方提供的MVC模式编写ASP.NET Web应用程序的一个框架。
它由Castle的MonoRail而来.目前已经历经数个版本。ASP.NET MVC中的MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
MVC模式图
ASP.NET MVC框架是既ASP.NET WebForms后的又一种开发方式。它提供了一系列优秀特性,使ASP.NET开发人员拥有了另一个选择。ASP.NET
MVC框架选项非常干净,而且容易使用。它将允许你在应用中轻易地保持关注分离,且有助于进行干净的测试和TDD。