我在简单的表格图形上使用基于JQuery的分页工具,需要将选定的页码发送到生成LINQ查询的ActionResult,以便正确分页结果。但是,当我尝试通过$ .ajax调用传递页码时,我用来获取数据,我的ActionResult没有得到发布的值。我做错了什么?
$ .ajax call:
(我已确认此功能正在继承页码。我还通过FireBug确认已发布“pagenum”参数):
function refreshBoard(inputValue, pageNumber) {
var job;
var myurl = '/Search/GetItems/' + inputValue
var mydata = "pagenum = " + pageNumber;
$.ajax({
data: mydata,
url: myurl,
type: 'POST',
dataType: 'json',
success: function (data) {
的ActionResult:
[HttpPost]
public ActionResult GetItems(string id)
{
int x = Convert.ToInt32(Request["pagenum"]); //<-- Does not work. X is always 0
//..... More code .....
答案 0 :(得分:0)
将其添加为参数。参数模型绑定会将请求中的值设置为参数。您也可以使用默认值(1),这样如果调用者没有发送该值,它将被设置为1(我们给出的默认值)
[HttpPost]
public ActionResult GetItems(string id,int pagenum=1)
{
//use the "pagenum" variable now
//to do : return something
}
您可以在querystring中发送pagenum
var myurl = '/Search/GetItems/' + inputValue+"?pagenum="+pageNumber
或者您可以像这样发送JSON结构
var mydata = { "pagenum" : pageNumber }
答案 1 :(得分:0)
它无法正常工作的主要问题可能是因为您没有将JSON作为数据发送。因此,我建议您按照以下方式更改代码。您还要发布到'/search/GetItems/' + pageNumber
,此帖子应该改为'/search/GetItems/'
。
$.ajax({
data: {id: inputValue, pageNum:pageNumber},
url: '/Search/GetItems',
type: 'POST',
dataType: 'json',
success: function (data) {
}
[HttpPost]
public ActionResult GetItems(string id, int pageNum)
{
}
JSON数据必须与服务器端的参数匹配!