我正在使用数组类型参数调用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显示空值。
如果有人有解决方案,请告诉我。
答案 0 :(得分:1)
尝试更改
data: "ArrMenuId"+ JsArrayMenuId,
到
data: {ArrMenuId : JsArrayMenuId.join()}
并改变
public HttpResponseMessage DeleteAllMenu(Array ArrMenuId)
到
public HttpResponseMessage DeleteAllMenu(string ArrMenuId)
我认为javascript数组不会轻易转换为c#数组,并且通过将其更改为此而不是传递字符串。一旦你有这个逗号分隔的字符串,你就可以在c#
中将它变成一个数组