Asp.net-Mvc

MVC4 RC WebApi 參數綁定

  • June 12, 2012

我從 MVC4 beta 升級到 RC 和最新的 autofac。以下操作已正確綁定,但現在兩個參數均為空。我看到他們改變了關於格式化程序等的事情,但我不確定是什麼導致了我的問題

[HttpPost]    
RedirectModel MyAction(string value1, string value1)

要求

Method: POST
Accept: application/json
URL: api/controller/myaction
BODY: {"value1":"1000", "value2":"foo"}

不太確定為什麼要從 Beta 更改,但我能夠通過將操作簽名更改為:

[HttpPost]    
RedirectModel MyAction(MyActionDTO dto)

並將 MyActionDTO 定義為

public class MyActionDTO 
{
       public string value1 { get; set; }
       public string value2 { get; set; }
}

它拋出了一個關於無法使用兩個字元串參數綁定到多個主體參數的異常。我猜想使用 DTO 對象更接近地代表您在 AJAX 呼叫中發送的內容(一個 JSON 對象)。

如果您想避免使用 DTO 對象,請嘗試以下操作:

[HttpPost]    
RedirectModel MyAction(dynamic value1, dynamic value2) {
   string sValue1 = value1;
   string sValue2 = value2;

引用自:https://stackoverflow.com/questions/10955629