加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

ASP.NET MVC v2 Priview 2发布

发布时间:2021-05-20 09:36:06 所属栏目:大数据 来源: https://www.cnblogs.com/szw
导读:??? 更新文档在文章底部的网页中有下载,相对v2 Preview1,主要添加了以下新功能: ModelMetadata 和 ModelMetadataProvider 类。 ViewData中添加了一个 ModelMetada 对象,可用于自定义 Metadata。 Model Validator Providers 。 可以定义Model Validator,

??? 更新文档在文章底部的网页中有下载,相对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

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读