BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

ASP.NET MVC 2中的不兼容修改

| 作者 Jonathan Allen 关注 593 他的粉丝 ,译者 王瑜珩 关注 0 他的粉丝 发布于 2010年3月20日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

前些天Scott Guthrie宣布ASP.NET MVC 2正式发布了。在带来众多新特性的同时,ASP.NET MVC 2也包含了一些不兼容的修改。与.NET BCL类库苛刻的修改规则相比,ASP.NET MVC的修改则有些烦人。

首先是IDataErrorInfo,这个接口一直存在于.NET中,却没有任何东西指导如何使用它。在ASP.NET MVC 1中,只有那些被修改过的属性才会被检查是否合法;而在2.0中,所有的属性都会被检查,这大大减少了出错的可能。此外,当验证属性失败时,就不会再验证类了。

Html.Substitute被用来创建那些不被缓存的片段,由于MVC视图引擎的改变,而从新版本中消失了。这意味着所有依赖部分缓存的人,都需要重新考虑他们的设计了。

IValueProvider取代了被大量使用的IDictionary接口。据文档记载“这个改变只会影响那些使用自定义value provider或自定义model binder的程序”。

辅助方法的返回值不再是一般的字符串,而是MvcHtmlString。这是为了支持ASP.NET中HTML编码模块的新语法。在ASP和ASP.NET中,开发人员可以使用<%= expression%>来混合静态与动态内容,但这样也很容易造成HTML注入错误。在ASP.NET 4中,开发人员可以使用新语法<%: expression%>来保证所有的字符串都被正确的编码为HTML。如果你不想字符串被编码,则需要让expression返回 IHtmlString。

对于DefaultControllerFactory的改变,意味着在自定义Controller Factory中做出相应的改变。自定义Controller Factory通常被用做依赖注入。

最后,“area”这个字符串在URL路由中变成了保留字,这是为了支持MVC 2中新加入的区域特性。

查看英文原文:ASP.NET MVC 2 Brings Breaking Changes

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT