我正在尝试通过ajax请求向asp mvc控制器方法发布json数据,但由于某些未知原因,asp mvc模型绑定程序无法绑定它。
我已经尝试跟随多个在SO上发布的答案,包括下面的答案
Post json object to ASP MVC doesn't work properly
但是我的jQuery ajax方法总是将null值发布到asp mvc控制器。
基本上,我正在尝试通过ajax请求加载局部视图。
Ajax请求
var myData =
{
"Id": 7,
"Name": "Name 1"
};
var obj = { 'test': myData };
var val = JSON.stringify(obj);
console.log(val);
$.ajax({
type: 'POST',
dataType: 'html',
url: '/Home/Partial',
contentType: 'application/json',
data: val,
success: function (xhr, status, response) {
console.log(response);
$('#1').html(response.responseText);
},
error: function (err) {
alert("error - " + err);
}
});
控制器方法
[HttpPost]
public IActionResult Partial(Test test)
{
return PartialView("_Test", test);
}
模型
public class Test
{
public int Id;
public string Name;
}
data: myData
。您正在添加另一个对象属性到您发送的值中,这会使 ModelBinder 混淆。 - Rory McCrossanpublic IActionResult Partial([FromBody]Test test)
,这样模型绑定器就知道要检查模型的主体部分。 - Nkosi[FromBody]
非常挑剔。 - nurdyguy