将对象列表POST到MVC 5 Controller
我想将一个对象列表发布到MVC 5控制器,但只有NULL到达Controller方法。 这个post:
$.ajax({ type: "POST", dataType: "json", contentType: "application/json", url: "../delikte", data: JSON.stringify({ "delikte" : delikte}) });
转到这个MVC 5控制器:
[HttpPost] [Route(@"delikte")] public void saveDelikte(List delikte) { ... // delikte is null }
正如我从IE调试工具中看到的那样,POST包含以下数据:
{"delikte":[{"VerfahrenId":"6","DeliktId":"4123"},{"VerfahrenId":"6","DeliktId":"4121"}]}
并且应该转换为此对象的List:
public class Delikt { public int VerfahrenId { get; set; } public int DeliktId { get; set; } }
我认为将Delft类中的VerfahrenId和DeliktId定义为int可能会出现问题,但更改为字符串并未改变问题。
我已阅读其他主题但我找不到解决方案(我的post包含dataType,contentType,发布的信息似乎格式正确)。 我的错误在哪里?
我会尝试从POST数据中删除属性名称:
$.ajax({ type: "POST", dataType: "json", contentType: "application/json", url: "../delikte", data: JSON.stringify(delikte) });
它也可能有助于明确指定值来自POST正文:
[HttpPost] [Route(@"delikte")] public void saveDelikte([FromBody]List delikte) { ... // delikte is null }