Строго типизированная модель представления и повторный рендеринг списка выбора, если Модель недействительна - PullRequest
1 голос
/ 09 декабря 2011

Хорошо, я посмотрел немного и не смог найти хорошего ответа на этот вопрос.

Использование ASP MVC3 У меня строго типизированная ViewModel, в которой есть список пользовательских объектов, извлеченных из хранилища. Я рендеринг, используя DropDownListFor в качестве выпадающего списка. Значение выбрано, и во время публикации у меня есть пользовательское связующее, которое связывает выбранное значение с пользовательским объектом .... Жизнь хороша ...

Я проверяю свой Model.IsValid, и по какой-то причине он недействителен. Э-э-э ... Мне нужно снова отобразить вид, но у меня нет полного списка всех опций. Есть ли способ повторно заполнить все значения опций выбора в привязке пользовательской модели или каким-либо другим способом, или мне нужно снова обратиться к своему хранилищу?

Спасибо.

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Вы снова попали в свой репозиторий.Внедрите кеширование в своем хранилище, используя MemoryCache, чтобы сэкономить на обращениях к БД и кэшировать по ключу.Это преимущество шаблона репозитория, и вызывающая сторона не знает.Так как по определению репозиторий по сути является представлением в памяти, это прекрасно работает.

Посмотрите здесь реализацию, она похожа на ту, которую я использую, и она прекрасно работает.http://stevescodingblog.co.uk/net4-caching-with-mvc/

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

0 голосов
/ 09 декабря 2011

Я обычно перестраиваю список снова и отправляю обратно в View. Часто я использую фабричный метод, чтобы наполнить viewmodel (s) необходимым списком (ами). Надеемся, что недопустимая модель будет редким явлением из-за проверки на стороне клиента в дополнение к той стороне сервера, с которой вы сейчас работаете.

...