我有一個移動應用程序發佈到我的ASP.NET MVC 4 HttpPost
方法,並且每次它接收到數據時,它都沒有收到正確的數據。ASP.NET MVC POST方法不接收JSON字典
[HttpPost]
public void NewItems(Dictionary<string, List<Dictionary<string, string>>> newItemsDictionary)
{
}
我有我的RouteConfig設置如下:
routes.MapRoute(
name: "Default",
url: "{action}",
defaults: new { controller = "API", action = "Index" }
);
移動應用被張貼到URL https://api.test.com/NewItems和參數是JSON編碼字典一個鍵,newItems
和值是字典陣列([["user": "testUser1", "itemNumber": "123-45678"], ["user": "testUser2", "itemNumber": "456-7890"]]
)
我有一個嘗試/ catch塊設置內POST方法來捕獲任何錯誤。當該方法發佈時,它會進入catch塊並告訴我在newItemsDictionary
參數中不存在「newItem」密鑰。參數中存在的鍵爲:action
和controller
。操作和控制器鍵不包含任何值。
爲什麼會發生這種情況,爲了接收正確的數據我應該改變什麼?
您的NewItems參數嚴重混亂。您需要將javascript對象結構與parmater匹配,然後您可以調用對象的json.stringify以序列化爲json。 – Botonomous