我有 2 个区域Admin
和FrontEnd
(按此顺序)。
当我在 FrontEnd 区域的视图中时,ActionLink
始终指向该Admin
区域:
@Html.ActionLink("Checkout", "Address", "Checkout")
会,http://localhost:53600/admin/Checkout/Address
但结帐控制器在我的前端区域。
我知道我可以通过在操作链接和设置中指定一个 routedata 对象来解决这个问题,area = "FrontEnd"
但我不想这样做。我希望ActionLink
助手默认使用我当前的路线。
这可能吗?
我在 actionlink 上阅读的所有问题都是人们询问如何链接到另一个区域,这表明它默认为他们的当前区域。我一个人有这个问题吗?
编辑,这些是我的路线,您可以看到它们与正确的命名空间相关联:
行政
public void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Administration_default",
"admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", area = "Administration", id = UrlParameter.Optional },
new[] { "CC.Web.Areas.Administration.Controllers" }
);
}
前端
public void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute("Default",
"{controller}/{action}/{id}",
new {controller = "Home", action = "Index", area = "FrontEnd", id = UrlParameter.Optional},
new[] {"CC.Web.Areas.FrontEnd.Controllers"}
);
}