我在RouteConfig.cs
config.Routes.MapHttpRoute(
name: "CustomFilter",
routeTemplate: "api/{controller}/{category}/{begin},{pageSize}",
defaults: new
{
category = RouteParameter.Optional,
begin = RouteParameter.Optional,
take = RouteParameter.Optional
}
);
以下方法使用:
public IHttpActionResult GetStudentsByCategory(string category, int begin, int pageSize)
{
..
}
自定义路线正常,除非缺少类别参数
1. api/students/tech/1,3 (is working)
2. api/students//1,3 (not working)
是否可以使第二个URL请求(没有类别参数)起作用?
答案 0 :(得分:1)
再添加一个没有类别的Route,它应该高于当前的
config.Routes.MapHttpRoute(
name: "CustomFilter-without-cat",
routeTemplate: "api/{controller}/{begin},{pageSize}",
defaults: new
{
begin = RouteParameter.Optional,
take = RouteParameter.Optional
}
);
config.Routes.MapHttpRoute(
name: "CustomFilter",
routeTemplate: "api/{controller}/{category}/{begin},{pageSize}",
defaults: new
{
category = RouteParameter.Optional,
begin = RouteParameter.Optional,
take = RouteParameter.Optional
}
);