У меня есть 2 области Admin
и FrontEnd
(именно в таком порядке).
Когда я нахожусь в представлении в области FrontEnd, ActionLink
всегда указывает на область Admin
:
@Html.ActionLink("Checkout", "Address", "Checkout")
Будет http://localhost:53600/admin/Checkout/Address
, но контроллер Checkout находится в моей области FrontEnd.
Я знаю, что могу решить эту проблему, указав объект 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"}
);
}
AreaRegistration
для регистрации этих областей и их маршрутов. См. msdn а> - person Daniel J.G.   schedule 19.11.2014