写点什么

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

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

关注

评论

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

实战篇-Docker 安装ELK(单节点)

派大星

运维监控 ELK Stack

【直播】开发者手机切换4.1总结

Laval小助手

鸿蒙实训营火爆北京,政企民生、金融、出行等领域的百余家企业积极参与!

最新动态

数据挖掘终篇!一文学习模型融合!从加权融合到stacking, boosting

阿里云天池

阿里云

VMware Fusion Pro 13许可证密钥 VM虚拟机如何使用?

Rose

VM虚拟机密钥 VMware Fusion Pro 13密钥 mac虚拟机软件

如何用Flask中的Blueprints构建大型Web应用

华为云开发者联盟

Python 开发 华为云 Web应用 华为云开发者联盟

【论文速读】| 对大语言模型解决攻击性安全挑战的实证评估

云起无垠

WiFi7 technology: IPQ9574 and QCN9274/QCN6274 combine to create the next generation of wireless networks

wifi6-yiyi

ipq9574

软件测试学习笔记丨Allure2 报告中添加附件(html)应用场景

测试人

软件测试

手把手带你用香橙派AIpro开发AI推理应用

华为云开发者联盟

华为云 昇腾 华为云开发者联盟 香橙派AIpro AI推理应用

基于vite多页面实现多端同构开发和部署

京东科技开发者

Macs Fan Control Pro 如何控制风扇速度?Macs Fan Control Pro使用教程及安装包分享

Rose

Macs Fan Control Pro下载 Macs Fan Control Pro破解 Mac 电脑风扇速度 Macs Fan Control 教程

学算法要读《算法导论》吗?

京东科技开发者

案例研究:如何通过淘宝天猫商品销量数据分析竞争对手

tbapi

淘宝API接口 淘宝商品销量数据接口

百川仓配切量接口成长史

京东科技开发者

网络延迟对事务的影响

GreatSQL

延迟 网络 事务 greatsql

2022全球AI生物智药大赛赛道二参赛攻略@paipai

阿里云天池

阿里云

AI时代来临我们要如何面对?

小齐写代码

软通咨询携手普元电力,共绘企业规范化管理与人才发展新篇章

软通咨询

数字化转型 绩效管理 数字化咨询 数据智能 数字化咨询

大文件上传实践分享

京东科技开发者

自定义对象池实践

FunTester

一文详解常见医学自然语言理解任务和算法

阿里云天池

阿里云

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