DisplayFormatAttribute не работает - PullRequest
1 голос
/ 30 июня 2011

Я использую MVC3 с Razor и EntityFramework.Для обработки планирования событий у меня есть StartDate, StartTime, EndDate, EndTime, используя jquery datepicker и timepicker.Я пытаюсь использовать DisplayFormatAttribute в моей модели представления, но в текстовом поле отображается вся строка DateTime.

В моей модели представления у меня есть следующие свойства:

    [DisplayFormatAttribute(DataFormatString = "{0:mm/dd/yyyy}")]
    public DateTime StartDate   { get; set; }

    [DisplayFormatAttribute(DataFormatString = "{0:h:mm tt}")]
    public DateTime StartTime   { get; set; }

И мое представление выглядит следующим образом:

    <div id="event-datetime-range" style="display:inline">
        <span id="event-startdatetime">
            @Html.TextBoxFor(model => model.StartDate, new { placeholder = "Start Date", id = "event-start-date", @class = "event-datepicker" });

            <span class="event-timerange">at</span>
            @Html.TextBoxFor(model => model.StartTime, new { placeholder = "Time", id = "event-start-time", @class = "event-timepicker event-timerange" })
        </span>

Может кто-нибудь сказать, пожалуйста, что я делаю не так?Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 30 июня 2011

атрибут DisplayFormat предназначен для использования с методом Html.DisplayFor(), а не для использования с Html.TextBoxFor.Я бы порекомендовал использовать пользовательский EditorTemplate для отображения вашего формата даты.Или используйте jQuery.

1 голос
/ 30 июня 2011

Если вы используете средство выбора даты JQuery, используйте опцию dateFormat при создании элемента управления.

jquery datepicker

Также в формате даты / времени «мм» - это минуты, где «ММ» - месяцы.

Вы также можете попробовать @Html.EditorFor() вместо @Html.TextBoxFor()

0 голосов
/ 30 июня 2011

Попробуйте использовать [DisplayFormat(DisplayFormatString={"0:d})].

...