我在第一次提交时总是在参数中获得空值。进一步提交按钮会给我列表。
JQuery Part:
function passMTMToServer() {
var MTMData = [];
$("#tblMtm").children("tbody").children("tr").each(function () {
var $this = $(this);
var $tds = $(this).children('td');
statusID = $tds.eq(1).find('input').val();
tld = $tds.eq(3).find('input').val();
order = $tds.eq(5).find('input').val();
MTMData.push({ st_testID: 0, st_statusID: statusID, tldID: tld, orderBy: order });
});
MTMData = JSON.stringify({ 'obj': MTMData });
$.ajax({
contentType: 'application/json; charset=utf-8',
type: 'POST',
url: '../Status/SaveMTM',
data: MTMData,
traditional: true,
success: function () {
alert('Data Passed to Server');
},
failure: function (response) {
alert(response);
}
});
}
控制器代码:
public ActionResult SaveMTM(List<MTMStatusModel> obj)
{
//perform submit in st_test_mtm_status
return View("SaveTest");
}
答案 0 :(得分:2)
Ajax请求:
如果您的控制器期望使用不同的名称
,请在发送时为您的参数命名$.ajax({
contentType: 'application/json; charset=utf-8',
type: 'POST',
url: '../Status/SaveMTM',
data: {obj: MTMData },
traditional: true,
success: function () {
alert('Data Passed to Server');
},
failure: function (response) {
alert(response);
}
});
在控制器:
如果您要向此动作发布内容,请添加[HttpPost]属性
[HttpPost]
public ActionResult SaveMTM(List<MTMStatusModel> obj)
{
//perform submit in st_test_mtm_status
return View("SaveTest");
}
答案 1 :(得分:0)
请尝试更改传递给ajax的数据,如下所示。
注意:确保您的数据是MTMStatusModel的列表。
$.ajax({
contentType: 'application/json; charset=utf-8',
type: 'POST',
url: '../Status/SaveMTM',
data: { 'obj' : MTMData},
traditional: true,
success: function () {
alert('Data Passed to Server');
},
failure: function (response) {
alert(response);
}
});