Добавить код для запуска перед любым просмотром? Эквивалент главной страницы? - PullRequest
3 голосов
/ 15 июля 2011

Что может быть эквивалентно загрузке страницы с выделенным кодом MasterPage в MVC? Я хочу проверить, вошел ли пользователь в мое локальное приложение, или в Facebook, или в твиттер, перед возвратом каждого просмотра.

Ответы [ 4 ]

5 голосов
/ 15 июля 2011

Пара опций.

Создайте базовый контроллер и используйте его метод инициализации.Пусть другие ваши контролеры наследуют его.Это, вероятно, ближе всего к тому, как работал код в MasterPage.

public abstract class BaseController : Controller
{
    protected override void Initialize(System.Web.Routing.RequestContext requestContext)
    {
       //Do Stuff
    }
}

Это метод, который я использую для кода, который я хочу запустить перед любыми представлениями, и для кода, который настраивает элементы в макете.представление (то есть: материал макета, который используется на каждой странице).

Альтернативно Global.asax по-прежнему поддерживается, вы можете использовать Application_BeginRequest или Application_PostAcquireRequestState.

3 голосов
/ 15 июля 2011

Используйте вместо этого ActionFilters. В фреймворке уже есть фильтр авторизации. Унаследуйте это и согните это к своей воле.

Подробнее о фильтрах действий здесь

0 голосов
/ 16 июля 2011

Используйте частичное представление и включите его в свою главную страницу / макет.

Вы также можете комбинировать это с частичным действием, см. Здесь - asp.net Действие контроллера частичного просмотра MVC

Шаблон mvc3 vstudio по умолчанию содержит файл _logonpartial в каталоге views / shared, который может быть хорошей отправной точкой для вас

0 голосов
/ 15 июля 2011

Вы используете главную страницу?

Если это так, просто добавьте туда вызов вашего кода (оставьте его просто вызовом метода и реализуйте логику в другом классе).

В качестве альтернативы, создайте новый класс View из System.Web.UI.View, переопределите событие OnPreRender или OnLoad и используйте его в качестве базового класса для собственных представлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...