Mvc 3如何列出所有可用的路线?

时间:2012-05-17 01:33:53

标签: c# asp.net-mvc asp.net-mvc-3 razor routes

如何:

@Html.ActionLink("MyText","Index","Home")

转换为:

<a href="/Home">MyText</a>

在它打印之前

<a href="/Home/Index">MyText</a>

我通过以下方式为所有控制器添加了默认操作:

        routes.MapRoute(
            "DefaultActionToIndex",
            "{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional });

在我看来,辅助方法不仅可以打印传入的内容,还可以解析路径字典,并确定“索引”不是必需的,因为它被设置为默认值。

问题是如何?

1 个答案:

答案 0 :(得分:5)

路由以两种方式工作,对于传入请求和URL生成,它使用提供的值(在本例中为System.Web.Routing.RouteTable.Routes)测试{ controller = "Home", action = "Index" }中的路由(按顺序),并使用第一条路由匹配。如果参数具有默认值,并且提供的值等于该默认值,则它不包含在URL中。