嗨伙计们我正在使用jquery ajax向控制器发布一些数据,但我在控制器中获取空值
jQuery代码是:
$('#registerCompOff').click(function() {
var compOff = [];
$('div').each(function() {
var curRow = {};
curRow.Description = $(this).find('.reason').val();
curRow.CompOffDate = $(this).find('.datefieldWithWeekends').val();
if (curRow.Description != null && curRow.CompOffDate != null) {
compOff.push(curRow);
}
});
$.ajax({
type: 'POST',
url: this.href,
dataType: 'json',
data: compOff
});
return $('form').valid();
});
compOff
不为空我已检查过......
控制器是:
[HttpPost]
public ActionResult RegisterCompOff(RegisterCompOff[] registerCompOff)
{
//return View();
}
你能告诉我哪里出错了吗?
答案 0 :(得分:3)
根据您的原始代码,更改 $ .ajax - > data: JSON.stringify(compOff)
然后添加contentType: "application/json; charset=utf-8"
,最后将控制器操作的参数名称更改为public ActionResult RegisterCompOff(RegisterCompOff[] compOff)
。
模型绑定应该开始。它确实适合我。
答案 1 :(得分:1)
<强>编辑:强>
试试这个:
$.ajax({
type: 'POST',
url: this.href,
dataType: 'json',
traditional: true,
data:
{
CompOffList: compOff
}
});
并按照以下方式更改您的控制器:
[HttpPost]
public ActionResult RegisterCompOff(List<RegisterCompOff> CompOffList)
{
//return View();
}
希望这会有所帮助
答案 2 :(得分:0)
你的j传递javascript对象作为数据,其中jquery ajax方法需要一个键/值对列表。 试试这个
data:{Description:compOff.Description, CompOffDate:compOff.CompOffDate}