asp.net mvc вопрос новичка - PullRequest
2 голосов
/ 16 марта 2009

Я недавно начал изучать asp.net mvc. Вот моя проблема.

Скажем, каждая страница в приложении нуждается в переменной, установленной пользователем, например, свидание. Если пользователь начинает с URL-адреса, который я предоставляю, все хорошо, так как я запрашиваю эту дату и сохраняю ее для сеанса. Как я могу перенаправить пользователя на первую страницу, если он сохранит какой-то другой URL (на другой контроллер и действие).

Другими словами, я думаю, что я ищу что-то вроде атрибута [Authorize], но на уровне приложения.

Спасибо за любую помощь.

1 Ответ

3 голосов
/ 16 марта 2009

Я бы, вероятно, создал бы базовый контроллер, от которого все мои контроллеры были получены. В базовом контроллере я бы переопределил метод OnActionExecuting, чтобы проверить сеанс на наличие требуемой переменной. Если переменная отсутствует, я установил бы для свойства ActionExecutingContext Result значение RedirectToRouteResult для соответствующего контроллера / действия для установки переменной.

Другой альтернативой является создание настраиваемого атрибута FilterAttribute, который вы украшаете соответствующими контроллерами / действиями, что в основном делает то же самое. Я сделал бы это только в том случае, если фильтр должен был применяться только к определенным контроллерам или действиям, а не ко всем, как вы описали в своем вопросе.

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