【问题标题】:MVC 3 Route - Add old url parameter to new one automaticallyMVC 3 Route - 自动将旧 url 参数添加到新参数
【发布时间】:2011-11-11 15:29:06
【问题描述】:

我在全局 asax 中有两个 MapRoute。`

            routes.MapRoute(
           "AutoGeneratedURLHandler", // Route name
           "{modulepath}/{controller}/{action}/{id}", // URL with parameters
           new { id = UrlParameter.Optional } // Parameter defaults
       );      



        //default route
        routes.MapRoute(
           "Default", // Route name
           "{controller}/{action}/{id}", // URL with parameters
           new { controller = "Account", action = "Logon", id = UrlParameter.Optional } // Parameter defaults
       );`

我在母版页上有两个链接。

  <li><%:Html.ActionLink("Card Types", "Index", "CardType", new { modulepath="CardManagement" },null)%></li>
                 <li><%:Html.ActionLink("Home Page", "Index", "Home")%></li>

点击卡片类型链接后,主页链接变为“/CardManagement/Home/Index”而不是“/Home/Index”。

路由值记住“modulepath”并将其自动添加到主页链接。但我不想要这个。如何让它不向 url 添加模块路径?

【问题讨论】:

  • 当我使用Html.RouteLinkRedirectToRoute 而不是Html.ActionLinkRedirectToAction 时,它按预期工作。但是没有其他解决方案吗?我不应该在项目中使用Html.ActionLinkRedirectToAction 吗?

标签: asp.net asp.net-mvc-3 routes


【解决方案1】:

您可以使用RouteLink 代替ActionLink 并将其发送到您的默认路由。另一种选择是不使用 ActionLink 帮助程序,而是自行滚动链接:

<a href="home/index">Home</a>

【讨论】:

  • 我不应该在项目中使用 Html.ActionLink 和 RedirectToAction 吗?如果我使用这两个,我会遇到这个问题。 ActionLink 没有解决办法吗?
  • 不是“新 id”部分,而是他对 URL 是如何派生的解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 2021-04-27
  • 2017-08-19
相关资源
最近更新 更多