![](/img/trans.png)
[英]how to retrieve the array which is send from controller to the view through ajax?
[英]How to send Array view to controller using Ajax call
我有一個帶有很多ID(ID00001)和復選框的網頁。 如果用戶可以檢查ID,則檢查后用戶可以刪除該ID。
我正在使用Ajax調用從視圖向控制器發送數組。
這是我的代碼:
function ConfirmOnSubmit() {
$("#checkAll").click(function () {
$(".checkBox").prop('checked',
$(this).prop('checked'));
});
$("#DivRMA").dialog({
height: 300,
width: 600,
modal: true,
title: "Return Merchandise Authorization",
buttons: {
"Return": function () {
var strids = new Array();
$('input:checkbox.checkBox').each(function () {
if ($(this).prop('checked')) {
strids.push($(this).val());
}
});
var options = {};
options.url = "/Home/Delete";
options.type = "POST";
options.data = { ECSIds: strids };
options.dataType = "json";
options.success = function (result) {
//deleted success
}
$.ajax(options);
},
"Cancel": function () {
$(this).dialog("close");
return false;
}
}
});
}
Public ActionResult Delete(string[] ECSIds)
{
//Delete Code
}
查看代碼:
<td>
<input type="checkbox" class="checkBox" value ="<%: Model.lstshpids[shp]%>";/>
</td>
我的數組strid看起來像"ID000001,ID000004,ID000007,ID0000009".
我沒有得到控制器的價值
提前致謝
ajax數據類型為json,因此您可以在數組上使用JSON.stringify,如下所示:
options.data = { ECSIds: JSON.stringify(strids)};
您可能會找到一些解決方案,只需搜索“到服務器的ajax字符串”,或某種類似的方法。
您發布的代碼應該可以工作,但是這完全取決於輸入流的外觀。 應該將其轉換為ECSIds=ID001&ECSIds=ID002...
,但是顯然不能正常工作。
在這種情況下,您可以使用...來強制響應。
options.data = 'ECSIds=' strids.join();
您還可以強制contentType
( 發送的數據類型)並使用DiabloSteves答案:
options.contentType = 'application/json';
options.data = { 'ECSIds': JSON.stringify(strids) };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.