AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

  • 2010-03-19
  • 本文字数:683 字

    阅读完需:约 2 分钟

前些天 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

2010-03-19 03:351988
用户头像

发布了 63 篇内容, 共 26.4 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

区块链电子证照共享平台--基于区块链的电子证照存证

13530558032

UI自动化测试框架_地图测试如何开展呢?

小小娃爱吃甜食

最佳实践 测试 测试落地

跨越异构鸿沟,Redis 迁移同步过程中的挑战与解决方案

京东科技开发者

云计算 大数据

全面开放!华为云GaussDB(for openGauss)正式商用发布

华为云开发者联盟

数据 华为云 GaussDB 云数据库 GaussDB(for openGauss)

你是不是一个害怕失去,而拒绝开始的人?

SwiftDD

读书笔记 工作体会

react代码切割之路由懒加载

前端小猪

React webpack

万字长文带你解读Redisson分布式锁的源码

鄙人薛某

Java redis 分布式锁 redisson

android开发视频!Android程序员最大的悲哀是什么?面试真题解析

欢喜学安卓

android 程序员 面试 移动开发

用Vue3构建企业级前端应用,TS能让你更轻松点

华为云开发者联盟

Vue 大前端 Vue3 ts 框架

理解RocketMQ

awen

RocketMQ 翻译 消息中间件

做好 IM/RTC 底层技术服务,帮助开发者打造自己的“Clubhouse”

融云 RongCloud

IM RTC clubhouse

克服云安全挑战的5种方法

云计算

一文带你了解GaussDB(DWS) 的Roach逻辑备份实现原理

华为云开发者联盟

容灾 备份 GaussDB(DWS) 逻辑备份 Roach

太秀了!用Excel也能实现和Python数据分析一样的功能!

JackTian

Python 数据分析 Excel 2月春节不断更 实操案例

《你越迷茫,越要去闯》读书笔记

SwiftDD

读书笔记

入驻infoQ了

SwiftDD

平台写手

Jira Software Data Center 可以免费使用高级路线图啦!

Atlassian

DevOps 敏捷 Atlassian Jira

区块链数字版权平台--为内容版权保驾护航

13530558032

双非本科生、非大厂,毕业一年,业余净收入20万

不脱发的程序猿

程序员 程序人生 28天写作 二月春节不断更 外包项目

MySQL COUNT(列名) 、COUNT(常量) 和 COUNT(*) 之间的区别

桃子

基于matlab的控制系统与仿真5-simulink仿真模型

AXYZdong

matlab 2月春节不断更

基于 Flink SQL 构建流批一体的 ETL 数据集成

Apache Flink

flink

超大规模会议技术优化策略 轻松实现 500 人线上流畅沟通

融云 RongCloud

音视频 视频会议

架构设计篇之微服务实战笔记(七)

小诚信驿站

架构师 刘晓成 小诚信驿站 28天写作 架构师成长笔记

让 AI “潜入”物流中心,你的快递很快就到!

华为云开发者联盟

华为 AI 数字化 物流 智慧物流

我看JAVA 之 Object & JNI

awen

Java jni Object

android开发视频教程!移动开发者升职加薪的8项技能,成功定级腾讯T3-2

欢喜学安卓

android 程序员 面试 移动开发

智慧党建APP开发,智慧党建平台的功能

13530558032

我看JAVA 之 String

awen

Java 源码 string

程序员成长第十三篇:做好时间管理

石云升

程序员 时间管理 28天写作 2月春节不断更

多种多样的语音连麦方式

anyRTC开发者

flutter uni-app ios android WebRTC

ASP.NET MVC 2中的不兼容修改_.NET_Jonathan Allen_InfoQ精选文章