2011-01-14 2 views
0

Я редактирую списки переменной длины и использую ViewData для передачи информации для заполнения DropDownList. Я использую метод, описанный здесь для редактирования этих списков: http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/Retain ViewData при редактировании списка переменной длины

Данные для этого выпадающего списка поступают из базы данных. Поскольку ViewData недоступна для запросов, я в настоящее время выполняю новый запрос к базе данных каждый раз. Это также происходит, когда ModelState недействительно и форма отображается повторно. Конечно, это не так идеально даже для легкого запроса, как этот.

Как сохранить информацию из этого запроса по запросам, если пользователь редактирует страницу с этим списком длины переменной?

ответ

0

Если список уникален для пользователя, вы можете сохранить его в Session. Если он доступен всем пользователям, вы можете сохранить его в Cache. В любом случае сохраненный список может и истекать, поэтому вы должны быть готовы повторно запросить его.

+0

Я раньше не использовал среду сеанса. Как я могу сказать, нужно ли мне повторно запрашивать или нет? Я просто получаю доступ к данным из сеанса, но как узнать в представлении, что некоторые данные больше недоступны? – Pieter

+0

Ну, его там нет, вы повторно запрашиваете (т. Е. 'If (Session [" Foo "] == null) {'). Тем не менее, нет ничего плохого в запросе БД. Удостоверьтесь, что вы преждевременно не оптимизируете. –