日期字段 - 数据注释 - 未验证

时间:2012-05-10 13:44:33

标签: jquery asp.net-mvc-3 jquery-ui

在我的一个ViewModel中,有一个IList类型的属性,其中EmploymentViewModel有一些属性,其中两个是Date属性“From”& “到”

    [Display(Name = "From", Description = "Enter your Employment Start Date")]
    [Date(ErrorMessage = "Date selected is invalid"), DataType(DataType.Date)]
    public DateTime? From { get; set; }

    [Display(Name = "To", Description = "Enter your Employment End Date")]
    [Date(ErrorMessage = "Date selected is invalid"), DataType(DataType.Date)]
    public DateTime? To { get; set; }

我正在使用DataAnnotationExtensions btw。

在界面上,我使用jQuery UI datepicker来允许用户选择日期。尽管放置了DataAnnotations,但“To”和“From”字段未显示任何“data-val”属性。

当我将显示的日期更改为无效日期时,jQuery不显眼的验证不会触发提及“选择的日期无效”的消息。

更新 - 更多信息

@Html.LabelFor(m => m.Employments[i].From, new { @class = "formLabel" })    
@Html.TextBox(GetInputName(i, "From"), (@Model.Employments[i].From.HasValue ? @Model.Employments[i].From.Value.ToString("MM/dd/yyyy") : ""), new { @class = "textBox toDate dynHasDatepicker", placeholder = "mm/dd/yyyy" })    

用于另一个属性“BirthDate”的相同View / ViewModel工作正常!

这里只有一个区别,主ViewModel包含两个属性: 1- BirthDate 2-就业(EmploymentViewModel的集合)

EmploymentViewModel包含From和To属性。这会影响验证过程吗?

有什么理由?

由于

1 个答案:

答案 0 :(得分:0)

我可以想到两个原因之一。 1)页面上有Html.EnableClientScript(false)或2)你需要使用Html.TextBox的强类型版本,即。 Html.TextBoxFor。在这种情况下,您可能希望查看使用Html.BeginCollectionItem,如下所示:http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/