我目前正在处理的 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 上传递复杂的对象吗?