我正在C#中編寫ASP.NET MVC3應用程序,並發現在我的視圖中調用Html.HiddenFor
將呈現DateTime
與如果我要調用Html.DisplayFor
時不同(並且不正確) 。Html.HiddenFor在ASP.NET中錯誤地格式化日期時間
它從中取值的模型確實有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日期。
如果這個值被隱藏了,爲什麼它的格式如何?據推測,它只需要在回來的路上再次解析...如果它不是用於*人類消費的話,那麼格式應該不重要。 – 2012-03-15 17:15:31
@JonSkeet出於某種原因,這會使模型無效,即時工作在en-GB上,但它打印出一個en-US的日期。但*只*爲這個隱藏的元素 – 2012-03-15 17:27:42
您可以使用自定義編輯器模板請參閱答案:http://stackoverflow.com/questions/8305262/asp-net-mvc-format-of-hidden-datetime – 2016-04-28 10:36:48