簡體   English   中英

使用MVC3在運行時設置DateTime顯示格式

[英]Setting DateTime display format at runtime with MVC3

我正在渲染一個包含DateTime值的輸入控件:

[DataType(DataType.Date)]
public DateTime? ScheduledDateTime { get; set; }

應用於輸入的格式存儲為用戶首選項,該用戶首選項在運行時從數據庫中檢索。

所以,我在運行時得到以下值:

YYYY-MM-DD

實際的格式不能承受,如何告訴我的模型綁定器格式化指定的DateTime? 我發現的所有示例都依賴於設置DateFormatString屬性,但這只能使用編譯時常量設置。 這使得它無法用於我的目的。

有什么東西覆蓋默認的模型綁定器? 任何人都有一個例子,我還沒能把一個谷歌搜索。

編輯:也許我創建一個新的HtmlHelper將在運行時處理轉換?

編輯2:很確定我會這樣做。 原諒過於冗長的命名慣例:

<%= Html.TextBoxFor(model => model.ScheduledDateTime, string.Format("{0:" + User.GetDateFormatStringAsCSharpFormat(SessionManager.Default.User.DateFormat)+ "}", Model.ScheduledDateTime))%>

這使用Razor語法,但同樣的原則適用

@{
  var dateFormat = (DateTime)Viewbag.PreferredDateFormatForUser //Just grab it from where ever you have it
}


@Html.TextBox("ScheduleDateTime", model.ScheduleDateTime.ToString(dateFormat))

以下是自定義日期時間格式字符串的參考

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM