分页破坏其他行动webapi

时间:2018-01-03 14:48:08

标签: asp.net-web-api pagination

我正在尝试为webapi中的资源实现分页,但它破坏了返回singleById资源的其他操作。

所以有两个函数可以在我的api中获取object / s(一个是另一个质量但是分页),如下所示:

public HttpResponseMessage Get(int page,string type="mm");
public HttpResponseMessage Get(int id);

type选项是半搜索,如可选过滤器。

我知道它有冲突我把它作为字符串id但它没有用,我想到了一种方法分别路由每个动作或重命名它们但它不起作用因为默认路由就像api/{controller}/{id}和不包括动作名称,我不希望生成api/{controller}/post/

1 个答案:

答案 0 :(得分:2)

我决定使用Attribute Routing

public JsonResult GetData(int id)
{
    if(id == 0) {
        List<Product> data = new List<Product>();
        for(var i=0; i< 10; i++){
            data.Add(new Product{ ProductId = i, ProductName ="test" + i});
        }
        return Json(data, JsonRequestBehavior.AllowGet);
    }
    else
    {
        List<Product> data = new List<Product>();
        data.Add(new Product { ProductId = 0, ProductName = "test" });
        return Json(data, JsonRequestBehavior.AllowGet);
    }
}

进行[Route("specefiedController/{id}/single")] 操作并让其他操作保持原样