Asp.net mvc 为MVC3日期时间设置DataFormatString

Asp.net mvc 为MVC3日期时间设置DataFormatString,asp.net-mvc,asp.net-mvc-3,datetime,Asp.net Mvc,Asp.net Mvc 3,Datetime,我在使用MVC3DateTime对象正确显示日期时遇到一些问题 在控制器中,我设置了Date=DateTime.Now 在ViewModel中: [Required(ErrorMessage = "Please enter a date")] [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.mm.yyyy}")] public DateTime Date { get; set; } 鉴于: @Html

我在使用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; }
鉴于:

@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

为什么它不工作?

您的viewModel是正确的(唯一的问题是,如果您想用C#显示短年份,您需要使用“yy”),但我不明白您如何处理这段代码

@Html.LabelFor(m => Model.Date, "Date")
@Html.ValidationMessageFor(m => Model.Date) 
@Html.TextBoxFor(m => Model.DatoForIntervju, new { @class = "datepicker" })
我向您展示了如何添加
日期选择器
,在此示例中
日期
以正确的格式显示并从视图返回:

    @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>
@Html.EditorFor(m=>m.Date)
@Html.ValidationMessageFor(m=>m.Date)
$(文档).ready(函数(){
$(#Date').datepicker({firstDay:1,dateFormat:'dd.mm.yy',clickInput:true});
});
更改

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

然后,使用

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

回答得好!我自己对textboxfor有这个问题。我发现这是一个有用的字符串格式资源,您可能会发现它对参考很有用:因为
{0:dd.mm.yyyy}
包括时间,所以
{0:dd.mm.yy}
不是也包括时间吗?是的。格式字符串应为{0:dd.MM.yyyy}或{0:dd.MM.yy}.MM=分钟,MM=月
@Html.EditorFor(m => m.Date)