技术开发 频道

ASP.NET MVC 2 RC2发布 即将支持VS2010

  【IT168 评论】ASP.NET MVC 2 RC 1版本发布时,很多新功能让大家眼前一亮。此次发布的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的辅助方法”,现在支持了Lambda表达式,从而可以使你使用到数组(array)或者集合索引(collection indexes)。例如现在可以这么做:Html.EditorFor(m=>m.Orders[i]) ,这段代码将会生成以序列i为name、具体数组中的值为value的标签。

  (注:这一点在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的辅助方法”现在更快了。

  次版本的源代码可以在这里下载到: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。

  (凡署名“IT168”的稿件均为本站原创,请在转载时注明出处及作者。非上述媒体稿件均系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。转载者自负版权等法律责任。)

0
相关文章