我有一个在运行时生成的 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/