这是我的Action Mehtod
public JsonResult GetById(IEnumerable<Guid> idList)
{
//.....
}
我的JavaScript。我正在使用 li 元素的id属性
创建一个字符串数组var idArr = [];
var list = $("#ulApplications li");
$.each(list, function () { idArr.push($(this).attr("id")) });
$.ajax(
{
type: "GET",
url: "/rolemanagement/application/GetById/",
contentType: false,
datatype: "json",
data: { 'idList': idArr },
success:........
在我的Action方法中,我没有得到任何数据。我好像错过了什么。 感谢
答案 0 :(得分:5)
将您的ajax更改为
$.ajax({
type: "GET",
url: "/rolemanagement/application/GetById", // should use '@Url.Action(..)'
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ idList: idArr }), // stringify
success: ....
})
答案 1 :(得分:0)
我尝试了以下代码似乎工作正常,
$.ajax({
type: "GET",
url: "@Url.Action("GetById", new { area = "rolemanagement", controller = "application"})",
data: { idList: [{ a: 'a' }, { a: 'b' }] },
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) { console.log(data); },
error: function () { throw new Error("Error occurred."); }
});
已经由@stephen给出了甚至stringify甚至不需要发送数据。
答案 2 :(得分:0)
搜索stackoverflow和其他博客后。我找到了一个适合我的解决方案,虽然上面给出的答案非常正确,但它们对我没有用。这是我的答案
var IdList = {idList:idArr}
$.ajax(
{
type: "GET",
url: "/rolemanagement/application/GetById/",
contentType: false,
datatype: "json",
data: IdList,
traditional: true,
success:
function (data) {
alert(data);
},