查询了一下关于 MVC 中的模型绑定,大部分都是关于如何使用的,以及模型绑定过程中的一些用法和概念,很少有关于模型绑定的内部机制实现的文章,本文就来讲解一下在 ASP.NET Core MVC 中模型绑定是如何实现的,以及它的一些其他用法。
模型绑定的用途
通常情况下,我们在使用 MVC 框架的时候不需要关注模型绑定的相关功能,因为它是集成到 MVC 框架内部的,当我们在浏览器访问一个地址的时候,无论是 GET 还是 POST 访问,在映射到 Action 的过程中 MVC 框架已经自动的进行了对象或者是路由参数的绑定,这其中就是使用的模型绑定。
在 ASP.NET Core MVC 中,模型绑定分为简单模型绑定和复杂模型绑定。简单的模型绑定比如直接从 Form 表单或者 URL 路由数据中获取信息,然后应用到Action方法的各个参数上,复杂模型绑定的话可能就不是简单的转换到参数的值上面了,可能中间还会涉及到一些数据类型转换,模型分解,参数校验等。
下面来看一下模型绑定的一个示例:
假设我们有一个ViewModel对象叫 Person
,它的代码如下:
public class Person{ public string Name { get; set; } public int Age { get; set; } }
在这个 ViewModel 对象中,都是使用的一些很简单的类型,那么我们的 Action 进行如下的定义:
public class PersonController{ [HttpPost] [Route("~api/person/add")] public IActionResult CreatePerson(Person person) { return Ok(person); } }
在上面的代码中,我们可以向
延伸阅读
学习是年轻人改变自己的最好方式