2014-02-20 8 views
0

Итак, что я могу назвать ModelState.IsValid в контроллере?Как system.web.mvc определяет, содержат ли значения ModelState ошибки?

Что проверено? С чем это связано? Где это происходит?

Я взглянул на документы MSDN, и это не показало много.

+0

используйте декомпилятор и проверьте код. Попробуйте JetBrains dotPeek и откройте dll System.Web.MVC и посмотрите, какой код этот метод имеет – Shyju

ответ

5

Что проверено?

Словарь ModelState.

Что он проверяет?

Этот словарь содержит элемент с ошибкой.

Где это происходит?

Всякий раз, когда вы вызываете метод IsValid. Но, возможно, вы спрашиваете, когда этот словарь заселен. Он заполняется стандартным связующим устройством. Например, давайте предположим, что у вас есть следующие действия контроллера:

[HttpPost] 
public ActionResult Index(MyViewModel model) 
{ 
    if (ModelState.IsValid) ... 
} 

Когда модель Связыватель по умолчанию является обязательным для модели представления (до выполнения действия контроллера), оно будет применять необходимую проверку при анализе значений запросов и если есть ошибки, он добавит их в словарь ModelState. Итак, как только код достигнет действия контроллера и вы проверите свойство IsValid, этот словарь уже заселен.

 Смежные вопросы

  • Нет связанных вопросов^_^