写点什么

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

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

关注

评论

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

揭秘华为云GaussDB(for Redis)丨大key治理

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

基金公司数据治理实践,打造“点线面体”的数据治理体系

袋鼠云数栈

数据中台 数字化转型 数据治理 基金 数据中台数据治理

MySQL char和varchar区别

java易二三

MySQL 编程 程序员 计算机

MySQL—修改数据库root用户密码

java易二三

Java MySQL 数据库 程序员 计算机

字节跳动基于火山引擎DataLeap的一站式数据治理架构实践

字节跳动数据平台

大数据 数据中台 企业号 8 月 PK 榜

全彩LED电子屏的驱动器有哪几种?

Dylan

电压电流 驱动 恒流源输出电路 LED显示屏 全彩LED显示屏

功能更新 | FinClip 7月产品大事记

FinClip

文盘Rust -- Mutex解决并发写文件乱序问题 | 京东云技术团队

京东科技开发者

rust mutex 高并发读,高并发写 企业号 8 月 PK 榜

助力农村金融机构数字化转型,原点安全将出席“第十三届中国农村金融机构信息化发展创新大会”

原点安全

数字化转型 农村金融机构

Falco操作系统安全威胁监测利器

统信软件

安全 操作系统

微信技术分享:揭秘微信后台安全特征数据仓库的架构设计

JackJiang

网络编程 即时通讯 IM

储能pcb的布局注意事项与制造难点

华秋电子

CI+JUnit5并发单测机制创新实践 | 京东物流技术团队

京东科技开发者

测试 高并发 单元测试 并发测试 企业号 8 月 PK 榜

性能测试最佳实践的思考

FunTester

TIKV节点数据文件误删后不更换服务器快速恢复

TiDB 社区干货传送门

管理与运维 故障排查/诊断

Hutool:一行代码搞定数据脱敏 | 京东云技术团队

京东科技开发者

Jackson hutool 数据脱敏 企业号 8 月 PK 榜

【SOP】最佳实践之 TiDB 业务读变慢分析

TiDB 社区干货传送门

性能调优 集群管理 管理与运维 故障排查/诊断

Placement Rules in SQL 使用案例

TiDB 社区干货传送门

新版本/特性解读 6.x 实践

2023清华博士团暑期社会实践项目圆满结束,合合信息助力科技人才发展

合合技术团队

人工智能 清华大学 博士

安全易用的运维会诊平台选哪家?可以免费试用吗?

行云管家

运维 IT运维 运维会诊

资讯速递 | ArkUI-X 预览版已正式开源!

OpenHarmony开发者

OpenHarmony

OpenHarmony社区运营报告(2023年7月)

OpenHarmony开发者

OpenHarmony

面试官:说说Spring中@NotEmpty、@NotBlank、@NotNull 的区别和使用

java易二三

编程 程序员 面试 计算机

Lighting web 测试使用

TiDB 社区干货传送门

迁移 管理与运维 备份 & 恢复 6.x 实践

有自动化运维功能的堡垒机有哪些?大家推荐哪款?

行云管家

高可用 堡垒机 IT运维 自动化运维

直播源码连麦技术功能分享,你要的这里全有

山东布谷网络科技

直播源码

倒计时 1 天!浙江大学、乘云数字、阿里云等多位技术专家教授解读最新运维技术

OpenAnolis小助手

Meetup 龙蜥活动

INFINI Labs 产品更新 | Easysearch 支持 SQL 查询、Console 告警功能支持邮件等多渠道

极限实验室

sql console 邮件 告警 easysearch

TiDB 源码编译之 TiUP 篇

TiDB 社区干货传送门

版本测评 新版本/特性解读 7.x 实践

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