【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

关注

评论

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

zone.js由入门到放弃之五——NgZone & ApplicationRef源码分析

OpenTiny社区

前端 angular

15年磨砺,亚信科技AntDB 8.0数据库,倾“擎”发布

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

TF-IDF算法

小魏写代码

iZotope Ozone 11 Advanced Mac激活版 臭氧11音乐制作软件

晴雯哥

“文心高校行”助力高校大模型人才培养!欢迎高校申请!

飞桨PaddlePaddle

大模型 走进高校 文心

IBM SPSS Statistics 26 for Mac 苹果spss数据统计分析工具 SPSS26中文永久激活版

晴雯哥

语音识别技术的挑战与机遇

来自四九城儿

蓝易云:CentOS-7详细基础教学!

百度搜索:蓝易云

云计算 Linux centos 运维 云服务器,

中文PhpStorm 2023 Mac破解版 PHP集成开发 PhpStorm 2023最新版激活安装教程

晴雯哥

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz 向量数据库

“昇腾万里•齐聚津门”昇腾AI创新大赛2023 天津区域赛暨第十期“津英汇”活动成功举办

彭飞

金融和大模型的“两层皮”问题

脑极体

金融 大模型

苹果Mac电脑专业修图软件 Affinity Photo 2 正式中文版

mac大玩家j

Mac软件 修图软件 修图工具 图像编辑器

蓝易云:什么是HTTP500内部服务器错误,要如何修复?

百度搜索:蓝易云

云计算 Linux 运维 HTTP

浪潮云连续2年入选Gartner中国云基础设施和平台服务市场标杆厂商

浪潮云

云计算

语音识别技术:原理、应用与未来

来自四九城儿

亚马逊 CodeWhisperer 初体验

亚马逊云科技 (Amazon Web Services)

JavaScript typescript 人工智能

打破界限!百度「共拓计划」将AIGC营销推向新高度

科技热闻

降低代码圈复杂度优化技巧

南城FE

JavaScript 前端 代码 代码规范

图文结合丨GreatSQL MGR + ProxySQL集群搭建方案

GreatSQL

数据库 greatsql

灞桥康养论坛圆满落幕 宜居灞桥全力推进康养产业高质量融合发展

联营汇聚

应用容器化转型-容器镜像怎么做

品高云计算

云计算 科技 容器镜像 应用容器化

从“作坊模式”到“平台科研”,和鲸聚焦 AI4S 项目全生命周期管理

ModelWhale

AI for Science 可复现性 科研协同 全生命周期 科研

什么型号的LED显示屏适合用在购物中心外墙

Dylan

价格 像素 LED显示屏 全彩LED显示屏

加入华为云AIGC实战营,一起探索AI前沿技术!

科技热闻

语音识别技术:未来人机交互的重要接口

来自四九城儿

【活动回顾】Rust:构建新时代基础设施的首选语言 @Qcon

Databend

GitHub超60K的“亿级高并发系统设计手册”被疯传

小小怪下士

Java 程序员 系统设计 高并发

Mac电脑剪切板复制粘贴推荐: PopClip for Mac激活中文版

胖墩儿不胖y

Mac软件 剪切板工具 文本编辑工具

Microsoft Remote Desktop Beta for Mac:微软远程连接工具

晴雯哥

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