0

私が持っているViewModelの1つに、タイプIListのプロパティがあり、EmploymentViewModelにはいくつかのプロパティがあり、そのうちの2つはDateプロパティ「From」と「To」です

    [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 を使用しています。

インターフェイスでは、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 が完璧に機能します。

ここでの違いは 1 つだけです。メインの ViewModel には 2 つのプロパティが含まれています。

EmploymentViewModel には、From プロパティと To プロパティが含まれています。これは検証プロセスに影響しますか?

何か理由は?

ありがとう

4

1 に答える 1

0

2つの理由のうちの1つを考えることができます。1) ページに Html.EnableClientScript(false) がある、または 2) 厳密に型指定されたバージョンの Html.TextBox を使用する必要がある。Html.TextBoxFor. その場合、おそらく次のような Html.BeginCollectionItem を使用して確認することをお勧めします。スタイル/

于 2012-05-11T13:27:27.533 に答える