【发布时间】:2013-10-16 15:54:54
【问题描述】:
我目前正在处理的 Web Api 有问题。
我有一个带有两个 Get 方法的控制器。一个返回对象列表的方法。另一个返回相同对象的列表,但根据传入的一些参数进行过滤。像这样:
public IList<MyObject> Get(int id)
{
//Code here looks up data, for that Id
}
public IList<MyObject> Get(int id, string filterData1, string filterData2)
{
//code here looks up the same data, but filters it based on 'filterData1' and 'filterData2'
}
我无法让路线为此工作。尤其是 Api 帮助页面似乎多次显示相同的 url。
我的路线如下:
config.Routes.MapHttpRoute(
name: "FilterRoute",
routeTemplate: "api/Mycontroller/{Id}/{filterData1}/{filterData2}",
defaults: new { controller = "Mycontroller" }
);
config.Routes.MapHttpRoute(
name: "normalRoute",
routeTemplate: "api/Mycontroller/{Id}",
defaults: new { controller = "Mycontroller" }
);
有人知道吗?
另外,是否可以将我的过滤方法更改为类似
public IList<MyObject> Get(int Id, FilterDataObject filterData)
{
//code here
}
或者你不能在 Get 上传递复杂的对象吗?
【问题讨论】:
-
你在尝试什么网址?
-
server/api/MyController/1/"someString"/"someOtherString" 和 server/api/Mycontroller/1
-
您尝试的 URL 与您正在创建的路由不符(查看我的回复)。
标签: c# asp.net-web-api asp.net-web-api-routing