Webmatrix, Razor и Sessions - PullRequest
       18

Webmatrix, Razor и Sessions

4 голосов
/ 21 октября 2010

У меня странное поведение с переменными сеанса на страницах Razor .cshtml. По сути, на некоторых страницах я проверяю, установлена ​​ли переменная Session, и если нет, то я ее устанавливаю. Я продолжаю получать нулевую ссылку на объект.

Я полагаю, это потому, что в конечном итоге Razor разработан для MVC, и я немного прочитал о жизненном цикле MVC, и, очевидно, объект сеанса вводится в другой точке в жизненном цикле, а не в веб-формах asp.net. Поэтому, когда я пытаюсь использовать его на своих страницах, он еще не доступен.

Таким образом, мой вопрос был бы для простых сайтов, основанных на Razor (пока не MVC, но движется в этом направлении), каким был бы эффективный способ проверить, установлена ​​ли переменная сеанса (например, скажем, «уровень доступа»), которая проверяется справедливо довольно часто. Это будет первая часть вопроса.

Вторая часть вопроса будет, если это плохая практика, что мне тогда делать, чтобы заменить этот подход?

Спасибо за ваш вклад.

1 Ответ

5 голосов
/ 13 ноября 2010

Страницы Razor View в ASP.NET MVC 3 выполняются практически идентично веб-страницам ASP.NET с синтаксисом Razor. И, к сведению, Razor был впервые разработан для веб-страниц, а не для MVC - позже мы переработали его, чтобы убедиться, что он «первоклассный гражданин» в обоих сценариях.

Таким образом, состояние сеанса должно работать нормально независимо от того, где вы его используете - из файла веб-страниц, контроллера MVC или даже представления MVC (хотя большинство будет утверждать, что использование состояния сеанса из представления MVC плохая практика).

...