ASP.NET MVC v2 Priview 2发布

    更新文档在文章底部的网页中有下载,相对v2 Preview1,主要添加了以下新功能:

  1. ModelMetadata 和 ModelMetadataProvider 类。
    ViewData中添加了一个ModelMetada 对象,可用于自定义metadata。
  2. Model Validator Providers 。
    可以定义Model Validator,源自pre1中所使用的System.ComponentModel.DataAnnotations的扩展。
  3. 客户端验证(Client-Side Validation)。
    结合Model Validator生成的客户端js验证代码,支持jQuery。目前支持以下DataAnnotations 中的验证类型:

    ·         StringLengthAttribute

    ·         RequiredAttribute

    ·         RegexAttribute 

    ·         RangeAttribute

  4. VS2010中新增代码段。
  5. RequireHttpsAttribute Action过滤器
    可以将非HTTPS(SSL)请求自动转向HTTPS。
  6. 重写HTTP Method Verb
    本次升级对于不支持某些请求类型(Method Verb)的浏览器,提高了兼容性,拥有下列属性:

    ·         HttpPostAttribute

    ·         HttpPutAttribute

    ·         HttpGetAttribute

    ·         HttpDeleteAttribute

    ·         AcceptVerbsAttribute

  7. 单个项目区域(Single-Project Areas)。
    操作更方便,配置更灵活,详见:Walkthrough: Creating an ASP.NET MVC Areas Application Using a Single Project

  8. 新的HiddenInputAttribute属性。
    可以更好地适应详情页面和编辑页面,直接使用属性进行配置,十分方便,也便于全局控制。

    此外,有一些值得注意的变化:

  1. JsonResult现在(默认)只支持POST方式,所以以前使用Get请求的现在要换成POST了,哪怕是用了一些Ajax手法的。当然,如果实在需要使用别的方式,如GET,可以使用JsonResult的新属性JsonRequestBehavior
  2. HtmlHelper原先返回的String类型现在已经变成了MvcHtmlString,为的是适应ASP.NET4.0中的HTML Encoding输出策略。如果不是使用ASP.NET 4 开发MVC 2,基本可以忽略这个改变。
  3. DefaultControllerFactory属性及其GetControllerInstance()参数的变化(RequestContext 被移除,GetControllerInstance方法改为: GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)),这其实在Preview1中已经改过,只不过当初文档没有提到,不过相信使用依赖注入的朋友应该已经发现了这个变化。好在这个变化对于原有代码不会产生太多影响,很容易就能升级过来。具体方法是:将原先的this.RequestContextDefaultControllerFactory中的属性),改为GetControllerInstance中的参数requestContext。

    但是,在有些情况下,MvcHtmlString这个改变还是会给我们带来一些麻烦,比如当我们当使用委托,并且以object类型接收原先HtmlHelper方法返回的String进行操作的时候,可能会使用Object.ToString()方法,这时候会抛出异常(这种调用通常都在View页面上,并且由于是委托,编译时很难对这种运行时错误进行判断),这个情况本人在升级网站的时候也碰到了多处,手动检查不但效率低下,而且容易遗漏。好在正好前不久开发了一个Google Sitemap生成器,不但可以生成Google Sitemap,还可以自动生成页面可用性报告,可以自动检测哪些页面发生了错误(404,500等等)。Google Sitemap生成器永久免费开放。

 

    官方文档中也已对已经安装了MVC 1.1(注意,不是1.0)的用户做出了安装提示:

  1. 打开控制面板中的“添加/删除程序”
  2. 卸载Microsoft Visual Studio 2010 Tools for ASP.NET MVC 1.1
  3. 卸载Microsoft ASP.NET MVC 1.1
  4. 安装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

原文地址:https://www.cnblogs.com/szw/p/1577460.html