随笔-38  评论-729  文章-1  trackbacks-16

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

http://szw.cnblogs.com/
研究、探讨ASP.NET
转载请注明出处和作者,谢谢!

1
0
(请您对文章做出评价)
« 上一篇:自定义FCKEditor中的“样式”
» 下一篇:[备忘]SQL Server 字符集更改
posted on 2009-10-02 23:41 SZW 阅读(1784) 评论(6)  编辑 收藏 网摘 所属分类: ASP.NET, ASP.NET MVC, C#, 其他

评论:
#1楼 2009-10-03 12:20 | 一线风      
收藏
  回复  引用  查看    
#3楼 2009-10-03 20:53 | canbeing      
我也要开始学习MVC了
  回复  引用  查看    
#4楼 2009-10-04 10:09 | 倍美丛[未注册用户]
没关注这个东西,看看
  回复  引用    
#5楼[楼主] 2009-10-04 22:34 | SZW      
@canbeing
@一线风
:)

@倍美丛
好东西,值得关注:)

  回复  引用  查看    
#6楼 2009-11-13 21:02 | xfzkj[未注册用户]
VS2010中带的ASP.NET MVC2 是preview 1还是preview 2?
  回复  引用    
#7楼[楼主] 2009-11-14 10:45 | SZW      
@xfzkj
VS2010目前有两个Beta版本,最新的Beta2中好像带了ASP.NET MVC2 preview2。据说在正式版中会带MVC2的正式版。

  回复  引用  查看