0

我正在尝试获取 WebAPI 中的项目列表

ajax 方法看起来像这样

       $.ajax({
            type: 'GET',
            url: 'api/values',
            data: JSON.stringify({ pageNo: pageNo + 1, pageSize: pageSize }), 
            contentType: 'application/json'
       });

在值控制器中,我无法获取值。

我的控制器看起来像这样。

    public IEnumerable<string> Get([FromURI] pagingInfo)
    {   
        return new string[] { "value1", "value2" };
    }

什么是正确的标准。上述标准是否正确或应该将 pageno 和 pagesize 放在 url 中并创建另一个路由。

4

1 回答 1

1

一般不推荐(甚至禁止)通过 GET 发送 body,只有查询字符串有效:

删除方法JSON.stringify,你的ajax调用应该是:

$.ajax({
    type: "GET",
    url: "/api/values",
    data: { pageNo: 1, pageSize: 2 },
    success: function (data) {
    }
});

它将自动转换为查询字符串,如果使用JSON.stringify,您将在查询字符串中得到 JSON 表示法并使其出错。如果你看一下 Fiddler,使用JSON.stringify,URL 是这样的:

/api/values?{%22PageNo%22:1,%22PageSize%22:2}

你的行动是直到:

public IEnumerable<string> Get([FromURI]PagingInfo pagingInfo)
{   
    return new string[] { "value1", "value2" };
}
于 2013-02-27T17:00:18.993 回答