DisplayFormat Dataannotation не работает - PullRequest
0 голосов
/ 03 августа 2011

У меня есть следующие аннотации данных в моем классе модели:

[Required(ErrorMessage = "Required")]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
    public DateTime DateOfBirth { get; set; }

, и когда я использую следующее в моем представлении, я не получаю ошибку проверки:

 <tr>
        <td>@Html.LabelFor(x => x.DateOfBirth, new { @class = "lbl" }, "Date Of Birth") </td>
        <td>@Html.TextBoxFor(x => x.DateOfBirth, new { @class = "w100 _dob" })
        <br>@Html.ValidationMessageFor(x => x.DateOfBirth)
        </td>

</tr>

Можете ли вы предложитьрешение?

Ответы [ 2 ]

4 голосов
/ 03 августа 2011

Атрибут DisplayFormat не имеет ничего общего с проверкой.Он используется только для форматирования значения при отображении в представлении.Если вы хотите проверить, что значение, которое вводится пользователем в соответствующее поле ввода, вы должны будете написать пользовательское связующее звено модели.

И, кстати, атрибут DisplayFormat используется в сочетании с HTMLПомощник .EditorFor, и он абсолютно не влияет на помощник Html.TextBoxFor, который вы используете:

<tr>
    <td>
        @Html.LabelFor(x => x.DateOfBirth, "Date Of Birth")
    </td>
    <td>
        @Html.EditorFor(x => x.DateOfBirth)
        <br/>
        @Html.ValidationMessageFor(x => x.DateOfBirth)
    </td>
</tr>
0 голосов
/ 03 августа 2011

LabelFor не имеет перегрузки, которая позволяет вам устанавливать CSS, вы можете установить лямбду или лямбду и текст.

Когда я удаляю "new {@class =" lbl "} "Раздели и запусти твой код, я получаю проверку работоспособности.

Редактировать: Извиняюсь, в моем первоначальном тесте использовался EditorFor, и моя машинная культура была настроена на US, поэтому он работал нормально.*

Вы можете установить культуру глобализации в своей веб-конфигурации на правильную культуру, которая использует mm \ dd \ yyyy, например.

<globalization culture="en-us" />

, но это вступит в силу для всего веб-сайта (включая формат чисел, дат, валюты и т. Д.), Поэтому, если это ограниченный случай, то это может быть не решением вашей проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...