查詢了一下關(guān)于 MVC 中的模型綁定,大部分都是關(guān)于如何使用的,以及模型綁定過程中的一些用法和概念,很少有關(guān)于模型綁定的內(nèi)部機(jī)制實(shí)現(xiàn)的文章,本文就來講解一下在 ASP.NET Core MVC 中模型綁定是如何實(shí)現(xiàn)的,以及它的一些其他用法。

模型綁定的用途

通常情況下,我們在使用 MVC 框架的時(shí)候不需要關(guān)注模型綁定的相關(guān)功能,因?yàn)樗羌傻?MVC 框架內(nèi)部的,當(dāng)我們在瀏覽器訪問一個(gè)地址的時(shí)候,無論是 GET 還是 POST 訪問,在映射到 Action 的過程中 MVC 框架已經(jīng)自動(dòng)的進(jìn)行了對(duì)象或者是路由參數(shù)的綁定,這其中就是使用的模型綁定。

在 ASP.NET Core MVC 中,模型綁定分為簡單模型綁定和復(fù)雜模型綁定。簡單的模型綁定比如直接從 Form 表單或者 URL 路由數(shù)據(jù)中獲取信息,然后應(yīng)用到Action方法的各個(gè)參數(shù)上,復(fù)雜模型綁定的話可能就不是簡單的轉(zhuǎn)換到參數(shù)的值上面了,可能中間還會(huì)涉及到一些數(shù)據(jù)類型轉(zhuǎn)換,模型分解,參數(shù)校驗(yàn)等。

下面來看一下模型綁定的一個(gè)示例:

假設(shè)我們有一個(gè)ViewModel對(duì)象叫 Person,它的代碼如下:

public class Person{    public string Name { get; set; }    
    public int Age { get; set; }
}

在這個(gè) ViewModel 對(duì)象中,都是使用的一些很簡單的類型,那么我們的 Action 進(jìn)行如下的定義:

public class PersonController{
    [HttpPost]
    [Route("~api/person/add")]    public IActionResult CreatePerson(Person person)    {        return Ok(person);
    }
}

在上面的代碼中,我們可以向 

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式