写点什么

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

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

关注

评论

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

如何彻底解决ToB企业市场和销售脱节的问题

客户在哪儿AI

ToB营销 ToB获客 ToB销售

Mac应用程序清理卸载工具:App Cleaner & Uninstaller for Mac 中文版

你的猪会飞吗

Mac软件下载站 mac破解软件下载

实测小浣熊AI办公神器(效率翻倍不是梦)

攻城先森

人工智能 智能助手 大模型 AIGC 办公小浣熊

我的数据分析大师-办公小浣熊

黑白相间

数据分析 办公小浣熊

供配电学习笔记 day4

万里无云万里天

自动化 电力 工厂运维

Oracle,MySQL,SQLServer三种关系型数据库的特点介绍

源字节1号

小程序 开源 软件开发 前端开发 后端开发

蓝易云 - Apollo配置中心介绍

百度搜索:蓝易云

云计算 Linux 运维 云服务器 Apollo

客户在哪儿AI用数据解决ToB企业市场和销售脱节问题

客户在哪儿AI

ToB营销 ToB获客 ToB增长 ToB销售

深入了解项目跟踪软件的关键优势

爱吃小舅的鱼

项目进度管理

一个老程序员对小浣熊 AI 办公助手的使用体验

汪子熙

Python 人工智能 办公小浣熊 小浣熊家族 小浣熊

ToB市场部如何选择最优的合作平台

客户在哪儿AI

ToB营销 ToB获客 ToB增长 ToB销售

开源创新引领未来|酷克数据亮相PostgreSQL中国技术大会,荣获数据库杰出贡献奖

酷克数据HashData

蓝易云 - linux IP地址原理,分类,子网划分,VLAN,TRUNK详解

百度搜索:蓝易云

运维 Web IP 网络 云服务器

ToB活动营销痛点——用最少场次的活动投入覆盖最多的目标客户

客户在哪儿AI

ToB获客 ToB增长 ToB销售

蓝易云 - C++中的const成员变量和成员函数

百度搜索:蓝易云

c++ 运维 云服务器 const 服务器租用

如有神威,办公小浣熊助我轻松拿捏数据分析

战场小包

小浣熊 AI办公助手

我的数据清洗能手小浣熊

轻口味

征文活动 办公小浣熊 小浣熊家族

破解缺陷管理:挑选顶尖系统的秘籍

爱吃小舅的鱼

缺陷跟踪

蓝易云 - Linux网络配置文件:MAC,UUID,设备名,子网掩码,网关,DNS等底层结构、架构图,工作原理 ,使用场景详解

百度搜索:蓝易云

Linux Mac 网络 DNS 云服务器

万字长文—带你深度体验小浣熊办公助手,全方位提升工作效率

数字扫地僧

办公小浣熊 代码小浣熊 小浣熊家族

ToB活动营销先要区分战略级活动、常规级活动和与我无关的活动

客户在哪儿AI

ToB营销 活动营销 ToB获客 ToB销售

【开源鸿蒙】编译OpenHarmony轻量系统QEMU RISC-V版本

码匠许师傅

qemu OpenHarmony risc-v

蓝易云 - 如何在云服务器上搭建网站?建站的4大步骤

百度搜索:蓝易云

云计算 运维 云服务器 服务器租用 高防服务器

无损音乐播放器推荐:Audirvana for Mac 中文激活版

你的猪会飞吗

Mac 软件

想知道海外技术面试都考些什么吗?

王中阳Go

Go 数据库 面试 算法 面经

小浣熊家族:自媒体新手的快速成长指南

程序员海军

AI 办公小浣熊 小浣熊家族 小浣熊

小浣熊,本领强,助我轻松把活忙

知日

AI #人工智能 小浣熊家族

从0-100:钓鱼场小程序开发笔记(上)

CC同学

java+uniapp实现微信JSSDK扫码功能

源字节1号

开源 软件开发 前端开发 后端开发 小程序开发

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