具有空参数的属性路由
本文关键字:属性 路由 参数 | 更新日期: 2023-09-27 17:57:03
我在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 请求(没有类别参数)工作?
再添加一个没有类别的路由,它应该高于当前路由
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
}
);