Как передать контекст в веб-приложении ASP.NET MVC - PullRequest
1 голос
/ 23 сентября 2008

Хорошо, я новичок в веб-приложениях ASP.NET ... и веб-приложениях в целом. Я просто работаю над приложением для внутреннего инструмента на работе.

данный урок ...

http://www.asp.net/learn/mvc-videos/video-395.aspx

Пример в основном имеет глобальный список задач.

Так что, если я хотел сделать то же самое, но теперь я хочу поддерживать задачи для проектов. Теперь я выбираю проект и получаю список задач для этого проекта. Как сохранить контекст выбранного проекта, когда я взаимодействую с задачами? Я как-то кодирую в ссылку? или вы храните это в каких-то данных сеанса? или как-то иначе?

Ответы [ 4 ]

5 голосов
/ 24 сентября 2008

Похоже, у вас есть несколько проектов с несколькими задачами в каждом, поэтому лучше всего, чтобы проект был задан в URL. Для этого потребуется маршрут, такой как "/projects/{project}/tasks". Он следует принципу RESTful URL (то есть URL описывает содержимое).

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

1 голос
/ 24 сентября 2008

Я использую:

  • Состояние сеанса для состояния, которое должно длиться для нескольких запросов, например при использовании волшебников. Я бы не стал помещать здесь слишком много данных, поскольку это может привести к проблемам с масштабируемостью.
  • TempData для сценариев, в которых требуется, чтобы состояние было доступно только для следующего запроса (например, когда вы перенаправляете на другое действие и хотите, чтобы это действие имело доступ к состоянию, но вы не хотите, чтобы оно зависало после этого)
  • Скрытые поля формы [input type = "hidden"] для состояния, которое относится к данным формы и о котором я хочу, чтобы контроллер знал, но я не хочу, чтобы эти данные отображались. Также может использоваться для передачи состояния клиенту, чтобы не перегружать ресурсы сервера.
0 голосов
/ 23 сентября 2008

RESTful URL, скрытые поля и сеансовые куки - ваши друзья.

0 голосов
/ 23 сентября 2008

хорошо, из того, что я могу сказать, лучший вариант, кажется, сохранить его в данных сеанса

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