【发布时间】:2014-02-21 23:07:29
【问题描述】:
我已经用谷歌搜索了这个并检查了整个 StackOverflow,但我一定遗漏了一些东西......我有一个不显眼的 jQuery,它可以劫持一个简单的按钮点击。它计算复选框并将每个复选框的值添加到数组中。当我在 jQuery 中使用警报框时,列表是正确的,但数组永远不会到达控制器端。代码流向控制器,但我打破了 var resolutionViewModel=new ResolutionViewModel();并检查 trans - 参数为空。我是 jQuery 新手,真的可以在这里使用帮助。
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);
}
【问题讨论】:
-
我还在错误警报框中看到一个错误,显示 [object Object]
-
请注意,错误回调按以下顺序采用 3 个参数:xhr、status、errorThrown,因此我将更改您的错误处理程序,因此传入这些参数并发出警报,而不是 xhr,这转换为字符串只会显示 [object Object] 就像你注意到的那样。
-
@Dismissile 你的意思是这样的:error: function(xhr, status, errorThrown) { alert("Status:" + status +" Error:" + errorThrown); } - 如果是这样,它只是说错误:未找到。
-
未找到意味着 404
-
@Dismissile 谢谢 - 这很奇怪,因为它在 ResolutionFormDisplay 方法中遇到了断点。我想知道它没有找到什么......
标签: javascript jquery arrays asp.net-mvc json