古詩詞大全網 - 個性簽名 - 如何在WebAPI下實現參數綁定

如何在WebAPI下實現參數綁定

如何在WebAPI下實現參數綁定

本文將概述如何在WebAPI模式下將參數綁定到壹個動作方法,包括參數如何讀取,以及壹系列規則決定了在特定環境下采用的綁定方法。最後,文章將給出壹些實例。

畢竟,參數綁定是接收壹個Http請求,並將其轉換成。NET類型使操作方法的簽名更容易理解。

請求消息包括請求的所有信息,例如帶有查詢字符串的請求地址(URL)、內容體和頭信息。沒有參數綁定。

在的情況下,每個操作方法都需要接收請求消息並從中手動提取參數,如下所示:

公共對象my action(http request message request){//進行顯式調用,從請求對象int id = int中獲取參數。解析(請求。RequestUri.ParseQueryString()。get(" id "));//需要錯誤邏輯!客戶c =請求。Content.ReadAsAsync()。結果;//應該是異步的!//現在使用id和客戶}

顯然,這種方式很難看,容易出錯,重復,並且難以進行單元測試。我們希望動作的簽名如下所示:

公共對象MyAction(int id,Customer c) { }

那麽WebAPI如何將請求消息轉換成id和customer這樣的參數呢?

模型綁定與格式化程序

參數綁定有兩種技術:模型綁定和格式化程序。事實上,WebAPI使用模型綁定讀取查詢字符串的內容進行參數綁定,使用格式化程序讀取主要內容。

(正文內容)來綁定參數。

使用模型綁定:

這個概念在ModelBinding和MVC中是壹致的。更多詳情請見此處。通常有壹個“ValuePeoviders”提供查詢字符串參數等數據片段,model binder將這些片段組合成壹個對象。

使用格式化程序:

格式化程序(如MediaTypeFormatter類所示)實際上是包含額外元數據的序列化程序。WebAPI從HttpConfiguration獲取格式化程序列表,然後傳遞請求信息。

鍵入內容以確定適當的格式化程序。WebAPI有許多默認的格式化程序。默認的JSON格式化程序是JSON.NET。還有Xml格式化程序和JQuery語法

FormUrl格式化程序.

格式化程序的核心方法是mediatypeformatter。readfromstreamsync,如下圖所示:

公共虛擬任務..