Установить DataFormatString для MVC3 DateTime - PullRequest
10 голосов
/ 26 сентября 2011

У меня есть проблема с правильным отображением даты при использовании объекта MVC3 DateTime.

В контроллере я установил Date = DateTime.Now.

В ViewModel:

[Required(ErrorMessage = "Please enter a date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.mm.yyyy}")]
public DateTime Date { get; set; }

В View:

@Html.LabelFor(m => Model.Date, "Date") 
@Html.ValidationMessageFor(m => Model.Date) 
@Html.TextBoxFor(m => Model.DatoForIntervju, new { @class = "datepicker" })

Выход:

<input class="datepicker" (...) value="26.09.2011 13:26:16" />

Однако я хочу, чтобы значение было 26.09.11 .

Почему не работает?

Ответы [ 2 ]

17 голосов
/ 26 сентября 2011

изменение

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.mm.yyyy}")]

до

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yy}")]

Затем вместо textbox, используйте

@Html.EditorFor(m => m.Date)
3 голосов
/ 26 сентября 2011

Ваша модель представления корректна (единственное, что вам нужно использовать "yy", если вы хотите показать короткий год в C #), но я не понимаю, что вы делаете с этим кодом

@Html.LabelFor(m => Model.Date, "Date")
@Html.ValidationMessageFor(m => Model.Date) 
@Html.TextBoxFor(m => Model.DatoForIntervju, new { @class = "datepicker" })

Я покажу вам, как добавить datepicker, в этом примере date показывает и возвращает из просмотра в правильном формате:

    @Html.EditorFor(m => m.Date) 
    @Html.ValidationMessageFor(m => m.Date)

    <script type="text/javascript">
        $(document).ready(function () {
            $('#Date').datepicker({ firstDay: 1, dateFormat: 'dd.mm.yy', clickInput: true });
        });
    </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...