Html.ValidationMessageFor() 메서드를 사용하여 유효성 검사 메시지를 폼에 표시하고 있습니다. 대부분의 양식 필드에서 몇 가지 필드를 제외하고 적절한 오류 메시지가 나타납니다. 하나는 양식의 텍스트 상자 인 '생년월일'필드이고 다른 하나는 '미국'주마다 드롭 다운되는 '주'필드입니다. 이 두 필드에 대해 'DateOfBirth 필드가 필요합니다.'라는 메시지가 표시됩니다. '상태 필드가 필요합니다.'Html.ValidationMessageFor() 메서드의 동작이 일관되지 않음
나는 리플렉터를 해고하고 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));
모델은 어떻게 생겼습니까? 그 소스 코드를 제공 할 수 있습니까? – JasCav
모델에서 일부 소스를 추가했습니다. – Skadoosh