Проверка ошибок ASP.Net MVC - Как отобразить сообщение проверки при передаче пользовательской модели представления в представление - PullRequest
0 голосов
/ 21 декабря 2009

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

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

IEnumerable<Location> locations

, поэтому он будет перечислять все существующие местоположения под новой формой местоположения. Когда я делаю это, я получаю сводку проверки, но сообщение для каждого поля не отображается, и css не применяет * и выделение к каждому неправильному полю.

Я использую Linq для SQL, поэтому я добавил всю свою проверку как частичные классы, поэтому в этом случае вся проверка происходит из местоположения частичного класса, которое, насколько я понимаю, будет скомпилировано с файлом конструктора, к которому linq SQL создал и добавить мой бизнес проверки. Эта проблема происходит, потому что я не передаю представление MyApp.Models.Location, а вместо этого передаю его MyApp.Models.MyCustomViewModel? если да, то каков мой лучший подход, чтобы я мог использовать только одну форму для создания и списка?

1 Ответ

0 голосов
/ 22 декабря 2009

Я смог заставить это работать - я изменил возвращаемое значение в моем методе POST, чтобы вернуть

return View(new MyCustomViewModel(location) { });

вместо

return RedirectToAction(new MyCustomViewModel(location) { });

надеюсь, что это поможет, если кто-нибудь столкнется с той же проблемой, что и я, - это было мое собственное недопонимание того, как View работает иначе, чем RedirectToAction.

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