ASP.NET MVC: создайте окружающее значение - PullRequest
3 голосов
/ 21 января 2010

У меня простой веб-сайт.Почти каждое действие принимает int toonId в качестве аргумента (toonId не приравнивается к пользователю: один пользователь может иметь несколько toons).
В данный момент я предоставляю это значение каждому представлению из контроллера, и каждая кнопка ссылки и отправки отправляетэто значение возвращается к контроллеру.
Это работает.Я просто ищу более простой способ сделать это (AOP приходит на ум).

Я использую куки, чтобы сохранить «избранное / по умолчанию toon», и это прекрасно работает (используется с ActionAttribute, который берет toonId из cookieи передает в аргумент toonId, если toonId не был указан).Но я хочу также поддерживать сеансы без файлов cookie.

Вопрос : Какой простой способ добавить переменную окружения на страницу, не передавая ее явно?Такой, что он будет работать с браузерами без cookie.

Является ли Viewstate способом пойти (который не должен быть в MVC)?
Является ли серверная сессия способом пойти?

Ответы [ 3 ]

0 голосов
/ 21 января 2010

Я полагаю, что вы можете автоматически передавать параметры строки запроса для использования браузеров без cookie, если вы подключите собственную реализацию IRouteHandler. Я не пробовал это все же. Я нашел пример реализации IRouteHandler, хотя он не показывает, как реализовать функциональность параметра строки запроса.

0 голосов
/ 21 января 2010

Мне не ясно, что представляет собой "toonid". Если это 'ambient per user session', то, как указано в womp, состояние Session будет хорошо работать для этого. Однако, если это нечто, имеющее большую область действия (например, набор из toonids, к которым обычно обращаются все пользователи), то Cache будет лучшей и более масштабируемой стратегией.

0 голосов
/ 21 января 2010

Это именно то, для чего предназначен сеанс.

В asp.net mvc нет жизненного цикла страницы, следовательно, и состояния просмотра.

...