写点什么

ASP.NET MVC 模型绑定

  • 2012-02-14
  • 本文字数:699 字

    阅读完需:约 2 分钟

模型绑定(Model Binding)特性使用请求数据来创建强类型对象,以此简化控制器的动作。 Jess Chadwick 在 MSDN 上的一篇文章中深入探索了该特性,并研究了复杂的场景,包括缺省模型绑定器不满足要求时如何定制。

ASP.NET MVC 模型绑定是什么?它让下面这段代码:

复制代码
public ActionResult Create()
{
var product = new Product() {
AvailabilityDate = DateTime.Parse(Request["availabilityDate"]),
CategoryId = Int32.Parse(Request["categoryId"]),
Description = Request["description"],
Kind = (ProductKind)Enum.Parse(typeof(ProductKind),
Request["kind"]),
Name = Request["name"],
UnitPrice = Decimal.Parse(Request["unitPrice"]),
UnitsInStock = Int32.Parse(Request["unitsInStock"])
}
};

可以这样写:

复制代码
public ActionResult Create(Product product)
{
// ...
}

ASP.NET 会自动将查询字符串参数名称与强类型对象中的属性名称相对应。这也支持 JSON 的 post 值。模型绑定支持更复杂的状况,比如集合与嵌套对象,不过在使用集合时你必须小心语法(其中要使用索引器来表示集合中的数据项)。

某些情况下,读者可能希望使用自定义的模型绑定器,以扩展现有的模型绑定器。常用的例子是将接口与抽象类绑定,这需要与下层业务模型的高度耦合,因为在运行时,绑定器需要基于请求数据选择特定实现。Jess 的文章展示了如何实现,只需继承DefaultBindingProvider,并重载需要的行为。想知道如何对自定义的模型绑定期进行单元测试,可参考 Scott Hanselmann 的文章《分割DateTime——对ASP.NET MVC 的模型绑定器进行单元测试》。

查看英文原文: ASP.NET MVC Model Binding

2012-02-14 14:372175
用户头像

发布了 479 篇内容, 共 168.7 次阅读, 收获喜欢 52 次。

关注

评论

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

可以回答一下:Redis和mysql数据是怎么保持数据一致的嘛?

Java 程序员 后端

吊打 ThreadLocal,谈谈FastThreadLocal为啥能这么快?

Java 程序员 后端

【Redis源码分析专题】(1)从本质分析你写入Redis中的数据为什么不见了?

码界西柚

redis Redis 核心技术与实战 11月日更 缓存驱逐

同事问我如何Java实现,搞定分析栈和队列数据结构的实现过程不就好了

Java 程序员 后端

同程内网流传的分布式凤凰缓存系统手册,竟遭GitHub强行开源下载

Java 程序员 后端

喝了杯咖啡,我突然对MySQL锁、事务、MVCC-有了新的认识!

Java 程序员 后端

推荐你一个正则表达式网站

卢卡多多

正则表达式 11月日更

可以回答一下:Redis和mysql数据是怎么保持数据一致的嘛?(1)

Java 程序员 后端

网络安全漏洞复现与分析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

四、StringRedisTemplate 和RedisTemlate有什么不同

Java 程序员 后端

工作五年之后,对技术和业务的思考

程序员 技术 职场 互联网人 业务

史上最全Java面试266题:算法+缓存+TCP+JVM

Java 程序员 后端

【高并发】SimpleDateFormat类到底为啥不是线程安全的?(附六种解决方案,建议收藏)

冰河

Java 并发编程 多线程 高并发 异步编程

同一份数据,Redis为什么要存两次

Java 程序员 后端

图像处理网站

Java 程序员 后端

发量能决定一个程序员的水平吗

Java 程序员 后端

吐血总结——90%程序员面试都用得上的索引优化手册

Java 程序员 后端

Apache Pulsar 在 BIGO 的性能调优实战(下)

Apache Pulsar

分布式 中间件 BIGO Apache Pulsar 消息系统 Apache BookKeeper

双非本科进不了大厂?阿里技术四面+交叉面+HR面,成功拿到offer

Java spring 程序员 mybatis

哭了,我居然回答不出来女同事的问题:索引为什么能提供查询性能---

Java 程序员 后端

因为一次 Kafka 宕机,我明白了 Kafka 高可用原理!

Java 程序员 后端

同一个Spring-AOP的坑,我一天踩了两次,深坑啊

Java 程序员 后端

数据服务基础能力之元数据管理

数据分析 数据 元数据 数据管理 业务数据

哪有什么中年危机,不过是把定目标当成了有计划

Java 程序员 后端

企业数字化转型的起手式是什么?

百度大脑

人工智能 百度

听我讲完GET、POST原理,面试官给我倒了杯卡布奇诺

Java 程序员 后端

基于 ElasticSearch 实现站内全文搜索(1)

Java 程序员 后端

活动预告|ArchSummit全球架构师峰会

第四范式开发者社区

万文讲解知乎实时数仓架构演进

大数据老哥

国庆临近,字节后端开发3+4面,终于拿到秋招第一个offer

Java 程序员 后端

双非本科毕业的我,为何能在金九银十期间斩获京东、字节、快手的offer

Java 程序员 后端

ASP.NET MVC模型绑定_Web框架_Roopesh Shenoy_InfoQ精选文章