Как связать метод действия с действием контроллеров другой области?

У меня есть две области дома и аккаунт.

Когда я нахожусь на странице 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 / Аккаунт / Аккаунт / Вход

но я хочу подключиться только с одним домом и одной учетной записью

0 ответов

Другие вопросы по тегам