Я использую MVC3 и в моем приложении есть Области.В общем, все работает нормально, я могу перейти к своей области (например, Admin = Area, Controller = Department) следующим образом:
<%: Html.ActionLink("Departments", "DepartmentIndex", "Department", new { area = "Admin"}, null )%>
Однако я заметил, что если я не укажу областьв моем ActionLink, например,
<%: Html.ActionLink("Test", "Index", "Home")%>
Это перестанет работать, если я перешел в область «Администратор».т.е. мой URL теперь http://localhost/myproj/Admin/Home/Index вместо http://localhost/myproj/Home/Index
Любые идеи о том, что здесь происходит?
Мои маршруты все по умолчанию, когдасоздание приложения MVC / Области.то есть
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "MyProj.Controllers" }
);
}
И регистрация моего района
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
Это по замыслу?В этой публикации предлагается использовать RouteLink вместо ActionLink: скажем, для использования RouteLink Требуется ли указывать значение маршрута "area" в actionlink, если приложение было сгруппировано по областям?