我有以下路线:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(null,"Conference/{shortName}/Submission/{submission}/{action}", new { controller = "Conference", action = "Show" });
routes.MapRoute(null,"Conference/{shortName}/{action}",new { controller = "Conference", action = "Index" });
routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
以下(希望是显而易见的)链接均有效:
- / session /testconf
- /Conference/testconf/ShowSubmissions
- /Conference/testconf/Submission/firstSub
- /Conference/testconf/Submission/firstSub/EditSubmission
当我现在处于 Submission/firstSub 并创建一个像这样的 ActionLink
@Html.ActionLink("Show Submissions", "ShowSubmissions", "Conference", new { shortName = Model.confereceShortName },null)
它创建以下链接
- /Conference/testconf/Submission/firstSub/ShowSubmissions
我怎样才能让actionlink忘记Submission/firstSub而不在那里硬编码它?
最佳答案
{controller}
的占位符在哪里?
默认路由应如以下示例所示。
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{*id}", // URL with parameters
new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
还尝试删除第一条 route 的/Submission/部分。 有关自定义路线创建和排序的帖子链接:
1) Creating Custom Routes (C#)
关于c# - 操作 链接到 "lose"参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11096561/