Как получить ASP.NET MVC для установки контроллера по умолчанию и действия для области? - PullRequest
3 голосов
/ 24 июня 2011

Я создал новый проект ASP.NET MVC с областями, и я пытаюсь установить действие контроллера как действие контроллера по умолчанию, если пользователь посещает эту область.

Я добавил область под названием «Логин», теперь у меня есть Areas/Login/, и я добавил LoginController.

Я пытаюсь настроить этот контроллер на запуск при переходе пользователя на сайт. Я могу получить к нему доступ, если наберу в браузере www.test.com/Login/Login, но не знаю, как настроить маршрутизацию в global.asax, чтобы указывать на этот контроллер по умолчанию.

Как мне это сделать в ASP.NET MVC?

Ответы [ 2 ]

5 голосов
/ 25 июня 2011

Когда вы создавали свою область, MVC не создавал класс [AreaName]AreaRegistration в папке Areas / [AreaName]? Там вы найдете регистрацию области, которая выглядит примерно так. Измените часть controller = параметра по умолчанию на имя контроллера (Логин), которое вы хотите использовать по умолчанию:

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Login_default",
            "Login/{controller}/{action}/{id}",
            new { controller = "Login", action = "Index", id = UrlParameter.Optional }
        );
    }
2 голосов
/ 24 июня 2011

Если вы украсите свой HomeController (или, в действительности, все ваши контроллеры, которые требуют, чтобы кто-то вошел в систему) с атрибутом [Authorize], ASP.NET MVC автоматически перенаправит людей на экран входа в систему, если они не вошли в систему.

Пример использования:

[Authorize]
public ActionResult Home()
{
}

Также вы можете прочитать об уязвимости атаки Open Redirect (и исправить) .

...