ASP.MVC 3路由:如何获取包含默认操作的url?

时间:2011-11-08 08:16:02

标签: asp.net-mvc asp.net-mvc-routing

假设我有以下路由

routes.MapRoute(
   "Default", // Route name
   "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } );

现在,当您使用Url.Action(“Index”,“MyController”)生成网址时,您将按预期获得:/ MyController

但在一个例外情况下,我想获得完整的url / MyController / Index (不改变路由)...有人知道这是否可行?

2 个答案:

答案 0 :(得分:2)

有可能。但是您需要修改路由。

  1. 创建一个自己的路由类,派生Route
  2. 覆盖GetVirtualPath()方法,以便为需要的网页添加/index
  3. 改为使用路由类配置默认路由。

答案 1 :(得分:1)

恐怕这是不可能的。并且它应该无关紧要,因为两个URL将解析为相同的控制器操作。