这是我的路线配置:
config.Routes.MapHttpRoute(
name: "Public",
routeTemplate: "{dept}/{unit}/",
defaults: new
{
controller = "Home",
action = "Index"
},
constraints: new { constraint = new MyConstraint() }
);
当我输入网址时:
mysite.com/XYZ/123
然后我的约束类被触发
但是当我使用时:
带有附加斜杠的 mysite.com/XYZ/123/
不会触发约束类。
我使用Web Api 2。
在routeTemplate中,我可以在末尾使用“/”,但不会产生差异。
为什么不起作用?
更新
public class HomeController : ApiController
{
[HttpGet]
public HttpResponseMessage Index()
{
}
}
答案 0 :(得分:0)
我已经更新了我的回答:
尝试属性路由:
[RoutePrefix("dept")]
public class DepartmentController : ApiController
{
[Route("unit:int:min(1)"}]
public object Unit() {}
}
可以像上面那样设置约束。更多: