c# - Mvc 3 如何列出所有可用路由?

标签 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>

在我通过以下方式为所有 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/

相关文章:

c# - 自制服务器场和远程调试

javascript - HTTP GET 中的 C# MVC ASP.NET URL 参数未正确编码

c# - 在 C#/.NET 中逐笔更新到烛台/OHLC 数据

asp.net-mvc - Microsoft JScript 运行时错误 : 'jQuery' is undefined

c# - 有谁知道为什么这个 Razor 代码无法编译?

c# - 在 Raspberry Pi 上使用 Mono 运行 .NET 应用程序。无法连接到 Azure SQL、SSL 加密

asp.net-mvc - 服务是否应该始终返回 DTO,还是也可以返回域模型?

asp.net-mvc - Actionresult 与 JSONresult

c# - 验证站点/应用程序以访问 Web API 服务

c# - System.ComponentModel.DataAnnotations MaxLength 未显示