簡體   English   中英

如何使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM