无法使用数据注释在MVC 4中设置日期时间格式

Sen*_*der 15 c# asp.net-mvc datetime datetime-format asp.net-mvc-4

我会尝试一切但不工作这个(dd/MM/yyyy)日期格式,这总是门mm/dd/yyyy

[Display(Name = "Release Date")]
[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public Nullable<DateTime> release_date { get; set; }
Run Code Online (Sandbox Code Playgroud)

剃刀视图

@Html.EditorFor(model => model.release_date)
Run Code Online (Sandbox Code Playgroud)

使用DateTime模板.

@model Nullable<System.DateTime>
@if (Model.HasValue)
{
    @Html.TextBox("", String.Format("{0:dd/MM/yyyy}", Model.Value))
}
else
{
    @Html.TextBox("", String.Format("{0:dd/MM/yyyy}", DateTime.Now))
}
@{
    string name = ViewData.TemplateInfo.HtmlFieldPrefix;
    string id = name.Replace(".", "_");
}
<script type="text/javascript">
    $(document).ready(function () {
        $("#@id").datepicker({
                dateFormat: "dd/mm/yy",
                showStatus: true,
                showWeeks: true,
                highlightWeek: true,
                numberOfMonths: 1,
                showAnim: "scale",
                showOptions: {
                    origin: ["top", "left"]
                }
          });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

Tri*_*zZz 22

你错过了两件事:

DataFormatString="{0:dd/MM/yyyy}"; //It is dd/MM/yyyy instead of dd/mm/yyyy
Run Code Online (Sandbox Code Playgroud)

你还需要:

ApplyFormatInEditMode=true
Run Code Online (Sandbox Code Playgroud)

试着用这个:

[Display(Name = "Release Date")]
[DataType(DataType.Date), DisplayFormat( DataFormatString="{0:dd/MM/yyyy}", ApplyFormatInEditMode=true )]
public Nullable<DateTime> release_date { get; set; }
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 5

{0:dd/mm/yyyy}应该是{0:dd/MM/yyyy}因为mm意味着分钟,而不是月份:

[Display(Name = "Release Date")]
[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public Nullable<DateTime> release_date { get; set; }
Run Code Online (Sandbox Code Playgroud)