MVC 3 - Повторно попълване на свойствата на ViewModel с колекции в действие, когато ModelState не е валиден

Имам ViewModel с няколко свойства, съдържащи колекции за попълване на падащите менюта във формуляр. В get Action тези свойства се попълват и след това изгледът се изобразява правилно.

Когато потребителят sumbits формуляр, тогава в действие Post моят ViewModel съдържа всички данни, попълнени във формуляра, но всички свойства на колекцията са нулеви, защото браузърът не ги изпраща. Това е добре, когато ModelState е валиден, така че вече нямам нужда от тях. Но когато ModelState не е валиден, трябва да покажа отново формуляра за коригиране на грешките.

MVC съхранява ли тези колекции временно навсякъде, тъй като свойствата на ViewModel могат лесно да бъдат попълнени със същите стойности като в get action, или трябва да ги попълня ръчно (от кеш или нова заявка към db)?

Мислех, че MVC съхранява оригинални стойности, така че те могат да се използват по време на валидиране в последващо действие, но не мога да го разбера.

Благодаря


person Jakub Matoušek    schedule 20.07.2011    source източник


Отговори (1)


Вероятно бихте могли да използвате персонализиран ModelBinder

Вижте тази публикация от Джими Богард. Не е точно това, от което се нуждаете, но може да ви даде някои идеи.

person Henning    schedule 20.07.2011