带空参数的属性路由
Attribute routing with empty parameter
我在 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
}
);
我在 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
}
);