我需要將多個select中的字符串列表傳遞給控制器。雖然這個要求對我來說很簡單,但在這個過去的一個小時裏,我一直在爲我着迷。我對此進行了公正的研究,但無法取得成功。使用ajax將字符串數組傳遞給mvc控制器
以下是我的Javascript代碼。請忽略評論。我成功地能夠獲取多重選擇中的項目列表。雖然我的Ajax調用,我得到錯誤「對象引用未設置對象的實例。
function submitForm() {
var selected = $('#selectedTasks option').map(function(){
return this.value
}).get()
var postData = { selectedTasks : selected } //corrected as suggested
//selectedTasks = JSON.stringify({ 'selectedTasks': selected });
alert(postData);
$.ajax({
type: "POST",
//contentType: 'application/json; charset=utf-8',
url: '@Url.Action("AssignTasks", "MonthEndApp")',
dataType: 'json',
data: postData,
traditional: true,
success: function (data) {
alert("Success");
},
error: function (xhr) {
alert(xhr.responseText);
}
});
}
MonthEndAppController.cs
[HttpPost]
public void AssignTasks(List<String> selectedTasks)
{
//do something
}
有人能指導我哪兒我已經錯了嗎?有人可以建議我什麼是錯的嗎?
編輯:正如Rory先生所建議的那樣,我對java腳本進行了修改,現在Java腳本部分工作得非常好,但是在發出ajax請求時控制器沒有被調用如果有什麼不對,我可以幫助我嗎? ñ對控制器的呼叫?
謝謝你的建議。這是我的錯誤。感謝您指出。它確實有效(JavaScript部分)。但是調試時控制器不會移動到控制器上。它只顯示一個警告「成功」,但不知道爲什麼控制不能移動。你看到控制器有任何問題嗎? – user3173346
@ user3173346而不是[httppost]嘗試[webmethod]? – codemonkeyliketab