我正在用 C# 编写一个 ASP.NET MVC3 应用程序,并发现在我的 View 中调用 Html.HiddenFor
会以不同方式(并且不正确地)呈现 DateTime
如果我要调用 Html.DisplayFor
.
从中获取值的模型确实有一个 DisplayFormat 装饰器,这似乎适用于 Html.DisplayFor
。有问题的属性写成:
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime MeetingStartDate { get; set; }
View 使用以下方式显示:
@Html.DisplayFor(model => model.MeetingStartDate)
@Html.HiddenFor(model => model.MeetingStartDate)
DisplayFor 调用会将日期呈现为 16/04/2012
但 HiddenFor 会将其呈现为 value="04/16/2012 00:00:00"
.
我已尝试更改当前文化以设置 DateTimeFormat
但这没有效果。
当前的文化是 en-GB,因此无论如何都不应该打印 en-US 日期。
最佳答案
如果您指定日期格式和 html hidden 属性,则使用 TextBoxFor 的 View 内替代方案将起作用。
@Html.TextBoxFor(model => model.CreatedDate, "{0:dd/MM/yyyy HH:mm:ss.fff}", htmlAttributes: new { @type = "hidden" })
https://stackoverflow.com/questions/9724713/