1. 程式人生 > 實用技巧 >asp.net core2 mvc 基礎教程--Model Binding

asp.net core2 mvc 基礎教程--Model Binding

Model Binding

Model Binding 允許我們用 HTTP 請求裡的資料來建立 C# 物件,這個物件就是 Action 方法的引數。

可以使用以下型別用來 Model Binding:

  • int,string 等簡單型別
  • 複雜型別物件
  • 陣列

示例:

將 localhost/Albums/Detail/3 繫結到 AlbumController 的 Details(int id) 方法。

Model Binder

Model Binding 主要依賴於 Model Binder。Model Binder 從 HTTP 請求的不同部分尋找引數,並將其組合繫結到 Action 的引數。

Model Binder 預設尋找範圍:

  • Form 表單提交的值
  • 路由的值
  • QueryString 的值

Binding Attributes

通過 Binding Attributes 自定義繫結。

  • Bind:有選擇的繫結屬性
  • BindNever:指定屬性不需要繫結
  • BindRequired:指定屬性必須繫結

示例:使用 Bind 僅繫結 UserName 和 Email 屬性,其他屬性都是預設值:

指定 Binding 來源

  • FromBody:Request Bodys
  • FromQuery:QueryStrings
  • FromHeader:Request Headers
  • FromRoute
  • FromForm

示例:

public ActionResult List(
    [FromQuery] int id,
    [FromHeader(Name = "Accept")] string accept)
{
    ...
}