c# - MVC 路由去掉 URL 中的/Index

标签 c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing optional-parameters

我有一个在运行时生成的 ActionLink 动态列表,如下所示:

@Html.ActionLink(x.Name, "Index", "User", new { x.ID }, null)

所以我在用户 Controller 上点击 Index 方法。

我的 RouteConfig.cs(它是一个 MVC4 应用程序)也设置如下:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

        routes.MapRoute(
            name: "",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "User", action = "Index", id = UrlParameter.Optional }
        );
    }

这为我提供了链接列表中的链接 server/application/User/Index/1

我需要在列表生成和/或路由文件中做什么才能将其更改为server/application/User/1

最佳答案

添加一个不需要操作但不会与其他路由冲突的路由

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

关于c# - MVC 路由去掉 URL 中的/Index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13568119/

相关文章:

c# - DotNetZip 库从一个 zip 文件读取到另一个

c# - INSERT INTO sql语句不工作“System.Data.OleDb.OleDbException”

c# - 在 MVC 中实现验证

c# - ASP.Net MVC - 路由对象 id == 标题 - 如何处理重复项?

asp.net-mvc - 如何将上传的文件存储到 MVC 应用程序中应用程序文件夹以外的位置

c# - ASP.Net MVC 项目中的 "Main"方法 - 也就是在加载页面之前运行的方法?

c# - asp.net 中运行时的确认对话框

c# - ADO.NET Entity Framework 和 ASP.MVC 的组合有没有错?

asp.net-mvc-4 - ASP.NET Web API - 一个 Controller 上有多个 POST 方法?

c# - 使用 CaSTLe Windsor IoC 注册通用类型和服务