从WEB API的GET方法读取值

本文关键字:方法 读取 GET WEB API | 更新日期: 2023-09-27 18:01:20

我试图在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" };
    }

正确的标准是什么?以上标准正确吗或者应该把页面号和页面大小放在url中,然后创建另一个路由。

从WEB API的GET方法读取值

一般来说,不建议(甚至禁止)通过GET发送正文,只有查询字符串是有效的:

删除方法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" };
}