MVC3 및 EF4.1을 사용하면 내 뷰 모델에서 둘 이상의 필드를 클라이언트 및 서버에서 어떻게 유효성을 검사합니까?MVC3/EF CustomValidator 모델의 두 필드
수정할 수있는 텍스트 상자가 있고 숨겨진 필드에 원래 시작 날짜가 있습니다. 사용자가 양식을 제출하면 수정 된 시작일이 원래 시작일의 한 달에 한 달 미만인지 확인하고 싶습니다.
DataAnnotation 및 CustomValidation을 사용하여이 작업을 수행하는 방법을 알 수 없습니까? 아니면 잘못된 길로 가려고합니다. 이것은 내가 함께 일한지 whay의 예입니다
[MetadataType(typeof(Metadata.MyUserMetaData))]
public partial class MyUser
{
public System.DateTime DateOfBirth { get; set; }
}
부분 클래스 내가보기에 jQuery를 추가 여전히했습니다 알고
public class MyUserMetaData
{
[CustomValidation(typeof(AmendedStartDate), "amendedstartdate", ErrorMessage = "Invalid date."]
public DateTime StartDate { get; set; };
public DateTime OriginalStartDate { get; set; };
}
사용자 정의 유효성 검사기
public class AmendedStartDate : ValidationAttribute, IClientValidatable
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
// How do I get multiple field values from object value?
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(Modelmetadata metadate, ControllerContext context)
{
var rule = new ModelClientValidationRule
{
ErrorMessage = FormatErrorMessage(metadata.GetDisplayName()),
ValidationType = "amendedstartdate"
};
yield return rule;
}
}
이 유효성 검사기에 대해.
감사합니다. 덕분에 많은 도움이되었습니다. – nrg