如何:
@Html.ActionLink("MyText","Index","Home")
转换为:
<a href="/Home">MyText</a>
而在打印之前
<a href="/Home/Index">MyText</a>
在我通过以下方式为所有 Controller 添加默认操作之后:
routes.MapRoute(
"DefaultActionToIndex",
"{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional });
在我看来,辅助方法不仅可以打印传入的内容,还可以解析路由字典并确定“Index”不是必需的,因为它已设置为默认值。
问题是如何?
最佳答案
路由双向工作,对于传入请求和 URL 生成,它测试 System.Web.Routing.RouteTable.Routes
中的路由(按顺序)与提供的值(在本例中为 { controller = "Home", action = "Index" }
),并使用匹配的第一条路线。如果参数具有默认值,并且提供的值等于该默认值,则它不会包含在 URL 中。
关于c# - Mvc 3 如何列出所有可用路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10628835/