Есть моменты, когда я нахожу, что мой ModelState недействителен, но не может найти то, что его недействило, поскольку нет ModelErrors. Каков самый простой способ определить, что привело к аннулированию вашего состояния модели, если вы сами не добавили ModelError?Что может привести к тому, что ViewData.ModelState.IsValid станет ложным
ответ
Глядя на asp.net mvc source code, свойство IsValid в ModelStateDictionary просто возвращает true или false в зависимости от наличия ошибок в элементе ModelState ICollection, хранящихся в свойстве Значения.
Вы должны быть в состоянии найти какие-либо ошибки, включая сообщения и исключения, как это:
foreach(var modelStateValue in ViewData.ModelState.Values)
{
foreach(var error in modelStateValue.Errors)
{
// Do something useful with these properties
var errorMessage = error.ErrorMessage;
var exception = error.Exception;
}
}
я натыкался подобной проблемой и, используя один и тот же вид, что рутина Стив при условии, нашел исключение (беззастенчиво) бросили где-то внутри стандартного связующего объекта, которое не попало в Html.ValidationSummary.
Проблема, в частности, что у меня был пакет с параметрами «Да» или «Нет» со значениями «1» и «0» (вместо «истина» и «ложь») и «Связывание с моделью» задуманный при попытке преобразовать их в логическое (которое ожидал член моей сущности), заявив, что 0 не является допустимым значением для Boolean.
Я бы надеялся, что будет сделано хорошее сообщение с указанием моего выбора недействительным, но вместо этого меня обработали пустой ValidationSummary. Кажется, что исключение было проглочено! (и теперь это то, что я буду искать в будущем). Возможно, это должно быть подано в MS как ошибка?
У вас есть ответ на это? –
Это было несколько лет назад, и я вспоминаю проблему, но не настолько уверен, что я вспоминаю ответ. Я полагаю, что я, возможно, закончил тем, что написал специальный код случая, чтобы выполнить мою собственную проверку, а не полагаться на стандартную привязку модели для этого. (То есть, проверяя Request.Form прямо, чтобы выяснить какие-либо ошибки самостоятельно, предполагая, что ValidationSummary не всегда будет полезен.) Это было в MVC 2, не уверен, что это все еще так в v4? – Funka
- 1. Что может привести к тому, что тело запроса станет пустым в node.js express?
- 2. Что может привести к тому, что пропускная способность станет очень медленной, когда фильтр ISAPI реализует SF_NOTIFY_SEND_RAW_DATA?
- 3. Что может привести к тому, что порядок байтов пакета станет частично скремблированным?
- 4. Что может привести к тому, что значение php будет истинным и ложным?
- 5. Что может привести к тому, что форма не закрывается?
- 6. Что может привести к тому, что EDT не запустится?
- 7. Что может привести к тому, что процесс перестанет восстанавливаться?
- 8. Что может привести к тому, что клиент angularjs/signalr засыпает?
- 9. Что может привести к тому, что изображение не будет отображаться?
- 10. Что может привести к тому, что эта миграция зависает?
- 11. Что может привести к тому, что функция document.ready будет пустой?
- 12. Что может привести к тому, что функция fwrite() настолько медленная
- 13. Что может привести к тому, что сайт не всегда загружается
- 14. Что может привести к тому, что Web.sitemap не будет найден?
- 15. Что может привести к тому, что новый PDO будет NULL
- 16. Что может привести к тому, что window.open вернется «undefined»?
- 17. Что может привести к тому, что AsyncTask не будет выполняться?
- 18. Что может привести к тому, что DOMNode :: nodeValue будет пустым?
- 19. Что может привести к тому, что location.href будет неопределенным?
- 20. что может привести к тому, что asp.net перестанет отвечать
- 21. Почему это может привести к тому, что файл будет пустым?
- 22. Что такое indexBuffer, и что может привести к тому, что у меня закончится их?
- 23. Любые идеи о том, что может привести к тому, что свойство System.Timers.Timer.set_Enabled может вызвать исключение System.NullReferenceException?
- 24. Что может привести к тому, что курсор ожидания вернется к умолчанию до его появления?
- 25. Что может привести к тому, что порядок инициализации приведет к повреждению стека?
- 26. Что может привести к тому, что MSBuild будет вести себя иначе, чем от машины к машине?
- 27. Что может привести к тому, что администратор сервера отказал «Доступ к базе данных»
- 28. Что может привести к отказу GPIB
- 29. Что может привести к сбою - [NSPasteboard types]?
- 30. Что может привести к тому, что моя игра единственного андроида начнется автоматически?
Это потрясающе! +1 – TheOptimusPrimus