查詢了一下關于 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); } }
在上面的代碼中,我們可以向
延伸閱讀
學習是年輕人改變自己的最好方式