写点什么

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:371998
用户头像

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

关注

评论

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

食堂就餐卡系统设计

Alvin

极客大学架构师训练营 第一周命题作业 2组

第一周作业

CraspLion

分布式事务实现及比较

luojiahu

分布式事务

Architecture Phase1 Week5:HomeWork

phylony-lu

极客大学架构师训练营

一致性hash算法及标准差计算

知行合一

week05

……

极客时间架构师培训 1 期 - 第 5 周总结

Kaven

架构师训练营 1 期 - 第五周作业(vaik)

行之

极客大学架构师训练营

架構師訓練營 week5 作業

ilake

架构 2 期 - 第一周作业(2)

浮生一梦

极客大学架构师训练营 第一周总结 2组

Java一致性Hash算法及测试标准差

A p7+

第一周-学习总结

ray-arch

极客大学架构师训练营

Raft 作者亲自出的 Raft 试题,你能做对几道?

多颗糖

分布式系统

架构师训练营第 1 期第 五 周学习总结

郑凯元

极客大学架构师训练营

【架构师训练营第 2 期】第1周作业

知致

第一周-作业

ray-arch

极客大学架构师训练营

学习笔记:架构师训练营-第五周

四夕晖

缓存 消息队列 负载均衡架构 session处理方案

不了解Raft算法敢说研究过分布式?

心平气和

分布式 raft

架構師訓練營 week5 總結

ilake

架构师训练营第 1 期第 五 周作业

郑凯元

极客大学架构师训练营

Architecture Phase1 Week5:Summarize

phylony-lu

极客大学架构师训练营

蹲坑的时候该读什么?

善宝橘

第1周 架构方法作业

心在那片海

架构师训练营第五周作业

四夕晖

Raft算法之日志篇

心平气和

raft

Raft算法之快照篇

心平气和

raft 快照

第1周作业:食堂就餐卡系统设计

Steven

架构2期-第一周作业(1)

浮生一梦

极客大学架构师训练营 第一周命题作业 2组

架构师训练营第 5 周作业

netspecial

极客大学架构师训练营

设计自己的核心竞争力链

boshi

职场 随笔杂谈

Raft算法之选举篇

心平气和

raft 选举

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