Html.HiddenFor 在 ASP.NET 中错误地格式化 DateTime

2023-12-26

我正在用 C# 编写 ASP.NET MVC3 应用程序,并发现调用Html.HiddenFor在我看来会呈现DateTime与我打电话时不同(且错误)Html.DisplayFor.

它从中获取值的模型确实有一个 DisplayFormat 装饰器,这似乎适用于Html.DisplayFor。有问题的属性写为:

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime MeetingStartDate { get; set; }

视图使用以下命令显示此内容:

 @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 隐藏属性,则使用 TextBoxFor 的视图内替代方案将起作用。

@Html.TextBoxFor(model => model.CreatedDate, "{0:dd/MM/yyyy HH:mm:ss.fff}", htmlAttributes: new { @type = "hidden" })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Html.HiddenFor 在 ASP.NET 中错误地格式化 DateTime 的相关文章

随机推荐