Непоследовательное поведение с методом Html.ValidationMessageFor () - PullRequest
0 голосов
/ 04 марта 2012

Я использую метод Html.ValidationMessageFor () для отображения проверочных сообщений в форме.Для большинства полей формы я получаю соответствующее сообщение об ошибке, за исключением нескольких полей.Одним из них является поле «Дата рождения», которое является текстовым полем в форме, а другим - поле «Штат», раскрывающееся во всех штатах США.Для этих двух полей я получаю «Поле DateOfBirth является обязательным».и 'Поле состояния обязательно.'

Я запустил рефлектор и посмотрел код в статических методах Html.ValidationMessageFor (), и не похоже, чтобы эти методы добавляли это сообщение.

Есть идеи, откуда могло прийти это сообщение и как его исправить?

ОБНОВЛЕНИЕ Добавлен код модели ... В основном я использую урезанную версию CSLA.Бизнес-правила добавляются в класс при его создании и запускаются один раз, вызывается соответствующий метод.По сути, «rule.ErrorMessage» - это то, что должно появляться, когда ValidationMessageFor перечисляет ошибки.Он работает для всех других свойств, кроме свойств DateofBirth & State.

Код модели

Свойства:

public Guid UserId { get; set; }
public Guid PatientId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Phone1 { get; set; }
public string Phone2 { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public States State { get; set; }
public string Zip { get; set; }
public DateTime DateOfBirth { get; set; }
public string EmergencyName { get; set; }
public string EmergencyPhone { get; set; }
public string EmergencyRelation { get; set; }

Бизнес-правила:

this.AddValidation(new DataValidation("DateOfBirth", "DateOfBirthRequired",
   delegate(DataValidation rule)
   {
      rule.ErrorMessage = "required";
      return ((DateOfBirth >= new DateTime(1900, 1, 1)) && (DateOfBirth < DateTime.Today));
   }, DataAction.Update | DataAction.Insert));
this.AddValidation(new DataValidation("State", "StateRequired",
   delegate(DataValidation rule)
   {
      rule.ErrorMessage = "required";
      return (State != States.Unknown);
   }, DataAction.Insert | DataAction.Update));

1 Ответ

0 голосов
/ 04 марта 2012

Все, что мне нужно было сделать, это установить свойства как обнуляемые, как упомянуто в этом посте .

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