NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

2024深圳国际智能感知技术与应用展览会

吹吹晚风

词云生成脚本

石君

Python 词云

使用 KubeSkoop exporter 监测和定位容器网络抖动问题

阿里巴巴云原生

阿里云 云原生 KubeSkoop

流水线中便捷迭代,鲲鹏DevKit 23.0新能力抢先看

华为云开发者联盟

后端 开发 华为云 鲲鹏 华为云开发者联盟

华为云API对话机器人的魅力—体验AI垃圾分类机器人

平平无奇爱好科技

2024上海国际数据中心技术及设备展览会

吹吹晚风

西安链游开发、区块链游戏设计、游戏合集、棋牌上链

西安链酷科技

软件开发 交易所开发 DAPP系统开发 链游开发

WiFi 7 IPQ9554 and WiFi 6 IPQ8074: The leaders of future connectivity

wifi6-yiyi

2024上海国际软件定义产业展览会

吹吹晚风

官方网站建设、ido私募网站开发、功能性系统网站设计开发、静态、定制化网站设计方案

西安链酷科技

DAPP系统开发 IDO代币预售

项目宣传推广孵化、项目包装

西安链酷科技

推广宣传 海外媒体 广告宣发 项目推广

Vellum for Mac(电子书生成工具) 3.5.4完美激活版

mac

苹果mac Windows软件 Vellum 电子书制作软件

2024上海国际机箱机柜与配套产品展览会

吹吹晚风

2024上海国际数字经济展览会

吹吹晚风

WiFi 6 IPQ5018 and WiFi 5 IPQ4019/IPQ4029-Discover the difference

wifi6-yiyi

ipq4029 ipq5018 WiFi 5

如何设计一个网络爬虫?

Noah

爬虫 API 编排

交易所开发 通过定制加密货币交易所开发服务优化回报

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 NFT开发

2024深圳国际电磁屏蔽及吸波材料展览会

吹吹晚风

优化模型之“标注错误”

矩视智能

深度学习 机器视觉 缺陷检测

各种业务场景调用API代理的API接口教程

Noah

API

Postman 脚本的奥秘:JavaScript 的内置对象和方法

高端章鱼哥

JavaScript Postman

16个最佳Chrome插件推荐给做前端的你

互联网工科生

前端 Chrome插件

《AI 大底座价值实现白皮书》开放下载,人工智能基础设施助力数字经济高质量发展

Baidu AICLOUD

大模型 基础设施建设 智算中心 AI 大底座

2024深圳国际电子工业装备展览会

吹吹晚风

基于 ACK Fluid 的混合云优化数据访问(二):搭建弹性计算实例与第三方存储的桥梁

阿里巴巴云原生

阿里云 云原生 容器服务

郴州等保测评中心电话是多少?在哪里?

行云管家

等保 等级保护 等保测评机构 郴州

等级保护分为几个等级?企业一般是几级?

行云管家

网络安全 信息安全 等保 等级保护

Intellij IDEA快捷键大全(超详细)

小齐写代码

华为云智能化组装式交付方案 | 金融级PaaS业务洞察及Web3实践的卓越贡献

平平无奇爱好科技

缓存的力量:提升API性能和可扩展性

这我可不懂

缓存 服务器

GreptimeDB v0.4 重大更新 — 新版引擎 Mito2 专为时序数据而生

Greptime 格睿科技

时序数据库 数据库· Greptime GreptimeDB

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