2

我正在调用 web-api 方法删除所有数组类型参数,显示值null。为什么?

我传递的数据如下:数据:“ArrMenuId”+ JsArrayMenuId,

function performalldeletemenu()
{

    if (confirm('Are you sure you want to delete this menu?'))
    {
        var JsArrayMenuId = new Array();
        $("input:checked").each(function ()
        {
            //console.log($(this).val()); //works fine
            JsArrayMenuId.push($(this).val());
        });
        alert(JsArrayMenuId);
        $.ajax({
            url: '/api/MenuWebApi/DeleteAllMenu/',
            type: 'DELETE',
            contentType: 'application/json; charset=utf-8',
            data: "ArrMenuId"+ JsArrayMenuId,
            success: function (data)
            {
                if (data.Success == true)
                {
                    //GetMenuList();
                }
            },
            error: function (xhr, textStatus, errorThrown)
            {
                //window.location = JsErrorAction;
            },

            headers:
            {
                'RequestVerificationToken': JsTokenHeaderValue
            }
        });
    }
    return false;
}



public HttpResponseMessage DeleteAllMenu(Array ArrMenuId)
{

}

这里 ArrMenuId 显示空值。

如果有人有解决方案,请告诉我。

4

1 回答 1

1

尝试改变

data: "ArrMenuId"+ JsArrayMenuId,

data: {ArrMenuId : JsArrayMenuId.join()} 

和改变

public HttpResponseMessage DeleteAllMenu(Array ArrMenuId)

public HttpResponseMessage DeleteAllMenu(string ArrMenuId)

我不认为 javascript 数组会很容易地转换为 ac# 数组,并且通过将其更改为此您将传递一个字符串。一旦你有了这个逗号分隔的字符串,你就可以在你的 c# 中把它变成一个数组

于 2013-08-13T17:45:00.250 回答