Как связать метод действия с действием контроллеров другой области?
У меня есть две области дома и аккаунт.
Когда я нахожусь на странице Index.cshtml домашнего контроллера и хочу перейти на страницу Login.cshtml моего контроллера учетной записи, я использую эту ссылку для перехода к методу действия входа в систему, который должен просмотреть Login.cshtml.
@Html.ActionLink("Log in", "Login", "Account", routeValues: new { area = "Account", returnUrl = Request.RawUrl }, htmlAttributes: new { id = "loginLink" })
и в браузере вижу
https://localhost:44301/Account/Login?returnUrl=%2Fhome%2Findex
но я получаю ошибку HTTP 404, не найдена.
Вот моя страница AccountAreaRegistration.cs Метод RegistrationArea
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Account_default",
"{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
Вот мой routeconfig.cs
var route = routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {controller = "Home", action = "Index", id = UrlParameter.Optional }
);
route.DataTokens["area"] = "Home";
К вашему сведению - если я изменю строки в HomeAreaRegistration и AccountAreaREgistration на
"Home/{controller}/{action}/{id}", "Account/{controller}/{action}/{id}",
Я могу успешно направить и подключиться к login.cshtml, но затем я подключаюсь к
localhost/Home/Home/ Индекс localhost / Аккаунт / Аккаунт / Вход
но я хочу подключиться только с одним домом и одной учетной записью