使用数组类型删除方法作为显示空值的参数

时间:2013-08-13 16:49:07

标签: asp.net-mvc-4 null asp.net-web-api

我正在使用数组类型参数调用web-api方法delete all,显示值null。为什么呢?

我传递的数据如下:data:“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显示空值。

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

1 个答案:

答案 0 :(得分:1)

尝试更改

data: "ArrMenuId"+ JsArrayMenuId,

data: {ArrMenuId : JsArrayMenuId.join()} 

并改变

public HttpResponseMessage DeleteAllMenu(Array ArrMenuId)

public HttpResponseMessage DeleteAllMenu(string ArrMenuId)

我认为javascript数组不会轻易转换为c#数组,并且通过将其更改为此而不是传递字符串。一旦你有这个逗号分隔的字符串,你就可以在c#

中将它变成一个数组