我正在使用DataAnnotations的Remote注释来验证出生日期。我也在使用JQuery UI datepicker。当我输入文本框触发日期选择器时,远程验证发生在我实际选择的日期设置之前。因此,如果原始日期无效,则会将其发送回我的服务器以进行验证,并返回一个无效标志,但是新的大概正确的日期会显示在文本框中。然后,这会使最终用户感到困惑。
如何选择日期后而不是在输入文本框时触发远程属性/验证?
我的视图模型BirthDate属性设置如下:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:mm/dd/yyyy}", ApplyFormatInEditMode = true)]
[Required]
[Remote("IsValidBirthdate", "Utilities", AdditionalFields = "SelectedStateId", HttpMethod = "Get", ErrorMessage = "Invalid Birth Date.")]
public DateTime? BirthDate { get; set; }
我的Jquery是这样的:
$("#BirthDate").datepicker({
maxDate: "-18y -1d",
dateFormat: "mm/dd/yy",
changeYear: true,
changeMonth:true,
setDate: origDate,
showStatus: true,
showWeeks: true,
autoSize: true,
constrainInput:true,
gotoCurrent: false,
showAnim: 'blind'
});