2010-03-06 2 views
1

У меня есть следующий код, и я не знаю, были, это ошибка:Проверка текстового поля в MVC

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Create(factura fac) 
    { 
     if (fac.numar>0) 
      ModelState.AddModelError("numar", "Numar este invalid ."); 
     if (fac.serie.Trim().Length == 0) 
      ModelState.AddModelError("serie", "Serie invalida"); 

     if (!ModelState.IsValid) return View("Create", fac); 

    } 

Здесь я пытаюсь проверить в текстовое поле «Серию», и я получил следующее сообщение об ошибке

Object reference not set to an instance of an object. 

Спасибо

+0

Возможно, стоит также взглянуть на DataAnnotation, MetaData и немного jQuery.validate, чтобы вам не нужно было прописывать свой путь через проверку, поскольку это стоит, вы должны сделать вышеуказанный код для редактирования и создания и, следовательно, для дублирования кода. поиск по DataAnnotation - это блестящий инструмент, чтобы все это сделать. то добавьте ModelState.IsValid, а не если это, если это и т. д. и т. д. также есть новый сокращенный помощник для сообщения сейчас, а не принимать глаголы, вы можете просто использовать [HttpPost], но для выше я сделаю шаг и взглянем на фас и это даст вам пробег полей и значений – davethecoder

ответ

1

Во-первых, не могли бы вы переформатировать, чтобы упростить чтение? т.е. положить весь код в блок?

Далее, отладка и проверить эти выражения, чтобы увидеть, если они неинициализированным:

  • fac.serie
  • фак

Похоже, либо будучи нулем может выбросить это исключение. Вероятно, это последнее. Если необходимо, заверните в состояние охраны, чтобы проверить, не является ли оно нулевым до оценки.

0

Проверить string.IsNullOrEmpty(fac.serie) или string.IsNullOrWhitespace(fac.serie)

Скорее всего serie равна нулю.

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