我想指定我的路由表,使它们感觉更“自然”
/产品 /产品/17 /产品/编辑/17 /产品/创建
接近默认配置,但“索引”操作将映射到控制器名称的倍数形式,而“详细信息”操作将直接映射到控制器名称后面的项目 id。
我知道我可以通过显式定义这样的特殊路由映射来实现这一点:
routes.MapRoute(
"ProductsList",
"Products",
new { controller = "Product", action = "Index" }
);
routes.MapRoute(
"ProductDetails",
"Product/{id}",
new { controller = "Product", action = "Details" }
);
/*
* Ditto for all other controllers
*/
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
上面的代码对我的口味来说太冗长了,并且缺点是每个控制器都需要至少提及两次才能普遍应用此 url 模式。
有什么方法可以概括这一点,还是在这种情况下我必须从事体力劳动?