更新文档在文章底部的网页中有下载,相对v2 Preview1,主要添加了以下新功能:
- ModelMetadata 和 ModelMetadataProvider 类。
ViewData中添加了一个ModelMetada 对象,可用于自定义metadata。 - Model Validator Providers 。
可以定义Model Validator,源自pre1中所使用的System.ComponentModel.DataAnnotations的扩展。 -
客户端验证(Client-Side Validation)。
结合Model Validator生成的客户端js验证代码,支持jQuery。目前支持以下DataAnnotations 中的验证类型:· StringLengthAttribute
· RequiredAttribute
· RegexAttribute
· RangeAttribute
-
VS2010中新增代码段。
- RequireHttpsAttribute Action过滤器
可以将非HTTPS(SSL)请求自动转向HTTPS。 -
重写HTTP Method Verb。
本次升级对于不支持某些请求类型(Method Verb)的浏览器,提高了兼容性,拥有下列属性:· HttpPostAttribute
· HttpPutAttribute
· HttpGetAttribute
· HttpDeleteAttribute
· AcceptVerbsAttribute
-
单个项目区域(Single-Project Areas)。
操作更方便,配置更灵活,详见:Walkthrough: Creating an ASP.NET MVC Areas Application Using a Single Project -
新的HiddenInputAttribute属性。
可以更好地适应详情页面和编辑页面,直接使用属性进行配置,十分方便,也便于全局控制。
此外,有一些值得注意的变化:
- JsonResult现在(默认)只支持POST方式,所以以前使用Get请求的现在要换成POST了,哪怕是用了一些Ajax手法的。当然,如果实在需要使用别的方式,如GET,可以使用JsonResult的新属性JsonRequestBehavior。
- HtmlHelper原先返回的String类型现在已经变成了MvcHtmlString,为的是适应ASP.NET4.0中的HTML Encoding输出策略。如果不是使用ASP.NET 4 开发MVC 2,基本可以忽略这个改变。
- DefaultControllerFactory属性及其GetControllerInstance()参数的变化(RequestContext 被移除,GetControllerInstance方法改为: GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)),这其实在Preview1中已经改过,只不过当初文档没有提到,不过相信使用依赖注入的朋友应该已经发现了这个变化。好在这个变化对于原有代码不会产生太多影响,很容易就能升级过来。具体方法是:将原先的this.RequestContext (DefaultControllerFactory中的属性),改为GetControllerInstance中的参数requestContext。
但是,在有些情况下,MvcHtmlString这个改变还是会给我们带来一些麻烦,比如当我们当使用委托,并且以object类型接收原先HtmlHelper方法返回的String进行操作的时候,可能会使用Object.ToString()方法,这时候会抛出异常(这种调用通常都在View页面上,并且由于是委托,编译时很难对这种运行时错误进行判断),这个情况本人在升级网站的时候也碰到了多处,手动检查不但效率低下,而且容易遗漏。好在正好前不久开发了一个Google Sitemap生成器,不但可以生成Google Sitemap,还可以自动生成页面可用性报告,可以自动检测哪些页面发生了错误(404,500等等)。Google Sitemap生成器永久免费开放。
官方文档中也已对已经安装了MVC 1.1(注意,不是1.0)的用户做出了安装提示:
- 打开控制面板中的“添加/删除程序”
- 卸载Microsoft Visual Studio 2010 Tools for ASP.NET MVC 1.1
- 卸载Microsoft ASP.NET MVC 1.1
- 安装ASP.NET MVC 2
经实践,安装ASP.NET MVC 2 Preivew 2前无需卸载ASP.NET MVC 2 Preview 1,程序会自动升级。并且模板的“ProjectTypeGuids”和内容都没有变化,不需要升级项目文件。因此分离Controller/Models并且使用MvcScaffoldTool的操作仍然可以参考这篇文章。
官方ASP.NET MVC v2 Preview 2 安装文件及文档下载:http://www.microsoft.com/downloads/details.aspx?FamilyID=d3f06bb9-5f5f-4f46-91e9-813b3fce2db1&displaylang=en
QQ:498977166
http://szw.cnblogs.com/
研究、探讨.NET开发
转载请注明出处和作者,谢谢!
Senparc官方教程《微信开发深度解析:微信公众号、小程序高效开发秘籍》,耗时2年精心打造的微信开发权威教程,点击这里,购买正版!