随笔-86  评论-813  文章-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
转载请注明出处和作者,谢谢!

 

 

posted on 2009-10-02 23:41 SZW 阅读(2035) 评论(6) 编辑 收藏

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

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

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

 回复 引用 查看   

子曰   学不可以已

进行中的MVC项目:http://www.senparc.com/ 
在线技术解答:http://www.senparc.com/SZD.xhtml
 
《ASP.NET 3.5+SQL Server网站模块化开发全程实录》


在线解答QQ群:106230270

昵称:SZW
园龄:4年1个月
粉丝:15
关注:7
<2009年10月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

搜索

 
 

常用链接

我的标签

随笔分类(142)

随笔档案(87)

文章分类

生活中的好友

我的好友

最新评论

阅读排行榜

评论排行榜

推荐排行榜