使用 asp.net 核心和 Jquery 从 ajax 请求将对象绑定到 asp mvc 控制器
Bind an object to asp mvc controller from ajax request using asp.net core and Jquery
我正在努力从 ajax 请求 post json 数据到 asp mvc 控制器方法,但是 asp mvc 模型绑定器没有绑定它,因为出于某些未知原因。
我已尝试遵循多个答案post在 SO 上编辑,包括以下
Post json object to ASP MVC doesn't work properly
但是我的 jQuery ajax 方法总是 post 空值到 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;
}
myData
足以绑定对象。
var myData = { Id: 7, Name: "Name 1" };
var val = JSON.stringify(myData);
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);
}
});
您还应该考虑参数上的 [FromBody]
属性,以便模型绑定器知道检查模型的主体。
[HttpPost]
public IActionResult Partial([FromBody]Test test) {
return PartialView("_Test", test);
}
可能是一个微不足道的问题,但我忽略了它并花了几个小时试图调试这个问题。
确保您要绑定的模型的属性标记为 public.
我正在努力从 ajax 请求 post json 数据到 asp mvc 控制器方法,但是 asp mvc 模型绑定器没有绑定它,因为出于某些未知原因。
我已尝试遵循多个答案post在 SO 上编辑,包括以下
Post json object to ASP MVC doesn't work properly
但是我的 jQuery ajax 方法总是 post 空值到 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;
}
myData
足以绑定对象。
var myData = { Id: 7, Name: "Name 1" };
var val = JSON.stringify(myData);
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);
}
});
您还应该考虑参数上的 [FromBody]
属性,以便模型绑定器知道检查模型的主体。
[HttpPost]
public IActionResult Partial([FromBody]Test test) {
return PartialView("_Test", test);
}
可能是一个微不足道的问题,但我忽略了它并花了几个小时试图调试这个问题。
确保您要绑定的模型的属性标记为 public.