我有一个小网站,我正在努力,我需要有3条不同的路线,如:
2 .com / id / foo / bar
3 .com / id / foo / bar / user
所以数字1将是foo的id。 路线2将是酒吧的id。 最后,路线3将是用户的身份。
我如何设置路线来执行此操作?
答案 0 :(得分:1)
如果所有这些都映射到单个控制器和操作,您可以像这样完成它:
routes.MapRoute("Default",
"{id}/{foo}/{bar}/{user}",
new { controller = "Home", action = "Index",
foo = String.Empty,
bar = String.Empty,
user = String.Empty });
您的索引操作如下:
public ActionResult Index(string id, string foo, string bar, string user) {}
如果您的意图是每个都是单独的操作,那么请考虑路由按照添加到路由表的顺序进行匹配。因此,总是按照最具体的顺序添加路线,你会没事的。所以:
routes.MapRoute("Default",
"{id}/{foo}/{bar}/{user}",
new { controller = "Home", action = "FooBarUser" });
routes.MapRoute("Default",
"{id}/{foo}/{bar}/",
new { controller = "Home", action = "FooBar" });
routes.MapRoute("Default",
"{id}/{foo}/",
new { controller = "Home", action = "Foo" });