4

如何:

@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 });

在我看来,辅助方法不仅仅是打印传入的任何内容,而是能够解析路由字典并找出“索引”不是必需的,因为它被设置为默认值。

问题是如何?

4

1 回答 1

5

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

于 2012-05-17T02:05:08.567 回答