【发布时间】:2015-08-25 23:26:13
【问题描述】:
我正在调用 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 显示空值。
如果有人有解决方案,请告诉我。
【问题讨论】:
-
你的删除方法在你的 web api 中是什么样子的?请将其添加到您的问题中。您必须以错误的方式传递数据,它非常挑剔.. 在这里查看如何传递数据 - api.jquery.com/jQuery.ajax
-
我正在传递如下数据:数据:“ArrMenuId”+ JsArrayMenuId,我在我的问题中添加了方法名称 + jquery ajax 函数调用。
-
我也用这个检查过:data: {ArrMenuId : JsArrayMenuId},但同样的问题。请帮帮我
-
我不确定您是否可以将这样的数组从 javascript 传递给您的控制器。尝试将控制器方法更改为 DeleteAllMenu(string ArrMenuId) 并在 javascript 中执行 data: {ArrMenuId : JsArrayMenuId.join()}
-
嗨,如果我按照你的方式做,它会显示 404 错误。 DeleteAllMenu(string ArrMenuId) -> DeleteAllMenu(MenuModel ArrMenuId) 如果我正在传递模型,那么它正在工作,而且您的建议 .join{} 也很好......感谢您的帮助 MR krilovich 。
标签: asp.net-mvc-4 null asp.net-web-api