【问题标题】:ASP.NET MVC Routing & Html.ActionLinkASP.NET MVC 路由和 Html.ActionLink
【发布时间】:2014-07-11 13:31:07
【问题描述】:

在我的路线文件中,我有这个设置:

        routes.MapRoute(
            name: "Stages", // Route name
            url: "Stages/{action}", // URL with parameters
            defaults: new { controller = "Tasks", action = "Index", taskTypeIds = new[] { TaskTypes.Stage } }
);

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

现在的问题是我要定义两个主菜单项:

                <li>@Html.RouteLink("Stages", "Stages")</li>
                <li>@Html.ActionLink("Tasks", "Index", "Tasks")</li>

但是这两个输出的是相同的 URL:

/阶段

为什么会这样,我可以绕过它吗?

【问题讨论】:

  • 您对这两种情况的期望是什么?
  • 你期待什么输出?
  • 我期待:/Tasks 和 /Stages 分别。
  • 你是说@Html.ActionLink("Tasks", "Index", "Tasks")实际上输出了一个指向/Stages的链接?
  • 我是!是的。我不太清楚为什么。

标签: c# asp.net asp.net-mvc asp.net-mvc-routing


【解决方案1】:

您的控制器是阶段路线的任务。

【讨论】:

  • 我想我做到了。您提到了 URL - 控制器任务的阶段。再次查看地图路线的名称:“Stages”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多