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