我已經使用了這個函數並檢查了所有的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); } - 如果是這樣,它只是說錯誤:找不到。 –