为MVC3 DateTime设置DataFormatString

Hel*_*lge 10 asp.net-mvc datetime asp.net-mvc-3

我有一些使用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; }
Run Code Online (Sandbox Code Playgroud)

在视图中:

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

输出:

<input class="datepicker" (...) value="26.09.2011 13:26:16" />
Run Code Online (Sandbox Code Playgroud)

但是,我希望值为26.09.11.

为什么不起作用?

jzm*_*jzm 17

更改

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.mm.yyyy}")]
Run Code Online (Sandbox Code Playgroud)

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yy}")]
Run Code Online (Sandbox Code Playgroud)

然后,使用而不是textboxfor

@Html.EditorFor(m => m.Date)
Run Code Online (Sandbox Code Playgroud)


Nik*_*ita 3

你的 viewModel 正确(唯一的问题是如果你想在 C# 中显示短年份,你需要使用“yy”),但我不明白你用这段代码做什么

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

我将向您展示如何添加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>
Run Code Online (Sandbox Code Playgroud)