我怎样才能实现“自然”的“自然”。 ASP.NET MVC中的URL方案路由表
我想指定我的路由表,以便他们感觉更“自然”
/产品
/产品/ 17
/产品/编辑/ 17
/产品/创建
接近默认配置但是“Index”操作将映射到控制器名称的倍数形式,“Details”操作将直接映射到控制器名称后面的项目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模式。
有什么方法可以概括这一点,还是我在这种情况下必然会受到体力劳动?
没有找到相关结果
已邀请:
1 个回复
赣借
注意第二条路线中的约束,它确保第二条路线不会拾取
,以便将其映射为第三条路线。 对于路由测试,您可以使用routedebugger,并为路由编写单元测试尝试MvcContrib-TestHelper。您可以使用NuGet获得两者。 编辑: 您可以使用这个简单的多元化器,然后实现这样的事情: