【发布时间】:2014-05-21 09:59:29
【问题描述】:
使用以下视图模型:
public class GetUsersFromNextCircuitRequest
{
public int? dosarId { get; set; }
public List<int> dosareIds { get; set; }
public string query { get; set; }
public int page { get; set; }
public int page_limit { get; set; }
}
并在以下操作中使用它:
public ActionResult GetUsersFromNextCircuit(GetUsersFromNextCircuitRequest requestNextUsers)
{
}
并通过以下方式发送请求:
ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
url: self.attr('getusersfromnextcircuiturl'),
dataType: "json",
contentType: 'application/json; charset=utf-8',
type: 'POST',
traditional: true,
data: function (term, page) {
if (self.attr('dosare') !== undefined && self.attr('dosare').length > 0) {
var dosareIds = [];
self.attr('dosare').forEach(function (element, index, list) {
dosareIds.push(element.attr('Id'));
});
return JSON.stringify({
query: term, // search term
page: page,
dosareIds: dosareIds,
page_limit: 30
});
}
else
return JSON.stringify({
query: term, // search term
page: page,
dosarId: self.attr('dosarid'),
page_limit: 30
});
},
results: function (data, page) {
var more = (page * 30) < data.total; // whether or not there are more results available
return { results: data.users, more: more };
}
}
http 请求如下所示:
{"query":"xa","page":1,"dosareIds":[4137,4163],"pagelimit":30}
问题是请求参数为空。我不知道为什么它不起作用。
【问题讨论】:
-
HTTP 请求中的
JSON是错误的,它可能应该是{"query":"xa","page":1,"dosareIds":[4137,4163],"page_limit":30}(pagelimit没有映射到您的模型属性之一)。查看您的代码,它应该设置page_limit但不是,也许尝试将名称放入引号中。当我在返回由页面表示的 JSON 对象时遇到问题时,我已经返回到 jQueryserialize功能并且从那以后我的没有任何问题。我知道 Enumerables 有时可能是JSON问题的原因,但我看不出你的问题有什么明显的问题。 -
我已经将属性名称与 json 有效负载匹配,仍然没有,参数为空。
标签: c# jquery ajax json asp.net-mvc-4