我已经使用了这个函数并检查了所有的StackOverflow,但我必须缺少一些东西......我有一个简单的按钮点击隐藏的不显眼的jQuery。它计算复选框并将每个选中的框的值添加到数组中。当我在jQuery中使用警告框时,该列表是正确的,但数组从未将其发送到控制器端。该代码流向控制器,但我打破了var resolutionViewModel = new ResolutionViewModel();并检查trans - 参数为null。我是jQuery的新手,可以真正使用这里的帮助。无法将数组从jQuery发送到MVC 4控制器
jQuery的
// Return the selected transactions
function resolveTransactions() {
$('#btnResolve').click(function() {
var selectedTransactions = new Array();
$('input[name="chkTransaction"]:checked').each(function() {
selectedTransactions.push(this.value);
});
if (selectedTransactions.length > 0) {
$.ajax({
type: 'POST',
dataType: 'json',
url: 'http://localhost/AuditLog/Home/ResolutionFormDisplay',
contentType: 'application/json; charset=utf-8',
data: {trans : selectedTransactions},
traditional: true,
success: function (data) { alert(data); },
error: function(xhr, status, errorThrown) { alert("Error: " + errorThrown); }
});
}
});
};
控制器侧
[HttpPost]
public PartialViewResult ResolutionFormDisplay(List<string> trans)
{
var resolutionViewModel = new ResolutionViewModel();
// fill Usernames dropdown selector in ViewModel
// fill Status dropdown selector in ViewModel
// fill list of transactionIds in ViewModel
return PartialView("_ResolutionDialog", resolutionViewModel);
}
我还看到错误提示框,上面写着一个错误的翻译: –
只是注意的是,错误回调需要3个参数按照下面的顺序:xhr,status,errorThrown,所以我会改变你的错误处理程序,所以传入这些参数并警告,而不是转换为字符串的xhr,就像你注意到的那样显示[object Object]。 – Dismissile
@Dismissile你的意思是这样的: error:function(xhr,status,errorThrown){alert(“Status:”+ status +“Error:”+ errorThrown); } - 如果是这样,它只是说错误:找不到。 –