MVC3 Lazy Model Binding / Загрузка - PullRequest
4 голосов
/ 22 марта 2012

У меня есть стандартный атрибут RequiredIf для некоторой условной проверки.
Моя форма и модель довольно большие, модель имеет 63 свойства, большинство из которых проверены.

В любом случае, у меня проблема с загрузкой моей модели в , пока моя проверка выполняется.
Если я поставлю точку останова в первой строке кода внутри метода 'RequiredIf' 'IsValid', я увижу, что в моей модели много пустых значений. Когда я нажимаю F5 (чтобы перейти к проверке следующего свойства), все еще остается много нулей. Если я нажму F5 еще 5 раз, модель волшебным образом заполнится данными, которые я разместил.

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

Ответы [ 2 ]

3 голосов
/ 23 марта 2012

Решение было полностью «переопределить» стандартную модель привязки. Создайте свою собственную подшивку модели, загрузите всю модель вручную, а затем выполните всю проверку вашей модели. Я все еще убежден, что есть какой-то способ просто сказать «Эй, загрузите всю модель перед проверкой» в этом стандартном Model Binder, но я должен был пока сделать свой собственный.

1 голос
/ 23 марта 2012

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

...