在Razor @ Html.EditFor中使用文化格式化日期

Fie*_*nix 2 c# asp.net-mvc razor asp.net-mvc-4

MVC 4,C#.

在我的剃刀视图中,我有:

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

我的模型中注释了以下内容:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public System.DateTime? StartDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

在视图中,它设置如此,带有日期选择器:

日期

请注意它是如何mm/dd/yyyy.如何根据用户动态更改?用户可以将文化设置为他们想要的任何东西.

通常我可以这样做:

.ToString("d", culture)
Run Code Online (Sandbox Code Playgroud)

文化是动态设定的.但这对@ Html.Editfor不起作用.

Fal*_*als 6

日期选择器是Google Chrome中HTML 5 输入类型日期的本机表示形式.您无法更改此格式.显示格式来自其操作系统中的用户文化/本地化配置.

如果要根据需要对其进行格式化,请删除[DataType(DataType.Date)],呈现默认输入字段,然后使用JQuery UI DatePicker或其他字段来呈现更好的日期字段.