Разрешить незаполненные поля - PullRequest
0 голосов
/ 18 декабря 2011

У меня есть модель для представления ASP.NET MVC, содержащая несколько свойств:

  • Тема
  • Сообщение
  • Идентификатор

Хотя тема и сообщение обязательны, идентификатор не требуется (он скрыт и устанавливается только для существующей записи).К сожалению, MVC проверяет его по мере необходимости (поле «Если» является обязательным), хотя я не установил атрибут «Обязательный».

Есть ли у кого-нибудь решение?Здесь не нашли решения, возможно просто искали неправильно ...

С уважением, Саша

Ответы [ 2 ]

1 голос
/ 19 декабря 2011

По умолчанию ASP.Net Mvc будет обрабатывать ненулевые свойства как 'обязательные' - даже если вы не добавляете атрибут [Required] к свойству.Если ваш идентификатор имеет тип int - он не обнуляем и поэтому необходим.

У вас есть два основных варианта:

  1. Измените свойство Id на int? - т.е.nullable int.
  2. Измените настройку по умолчанию для MVC, чтобы не учитывать необнуляемые атрибуты как требуется.

Опция 1 проста.Для варианта 2 добавьте следующее к методу Application_Start в вашем global.asax

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = true;

1 голос
/ 18 декабря 2011

Если Id является Int ... вы можете попробовать сделать его Int? (обнуляемый Int).Если это nullabe, я думаю, что MVC не проверит его.

Другим способом было бы поместить значение по умолчанию в это скрытое значение, скажем, «-1» ... и на контроллере вы можете проверить это.

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