属性与空参数路由
问题描述:
我创造了我的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请求(没有ca tegory参数)工作?
答
再添加一个路由没有类别,它应该是高于目前的一个
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
}
);