0
我有一个小网站,我在哪里,我需要有三个不同的途径,如工作的数量:ASP.NET MVC路线,重定向到控制器依赖于字符串
- 的.com/ID /富
2的.com/ID /富/酒吧
3的.com/ID /富/酒吧/用户
所以数1将是foo的ID。 路线2将是酒吧的id。 最后,路由3将是用户的ID。
我该如何设置路线来做到这一点?
我有一个小网站,我在哪里,我需要有三个不同的途径,如工作的数量:ASP.NET MVC路线,重定向到控制器依赖于字符串
2的.com/ID /富/酒吧
3的.com/ID /富/酒吧/用户
所以数1将是foo的ID。 路线2将是酒吧的id。 最后,路由3将是用户的ID。
我该如何设置路线来做到这一点?
如果这些映射到一个控制器和行动,可以完成像这样:
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" });
谢谢,你的第二种方法正是我所期待的。我在路由语法上有点生疏。 – ddd 2010-02-05 21:48:11
你可以发布的行动,将接收路线?这将有助于看到一些代码示例。 – 2010-02-05 21:28:34