在基於MVC的體系結構中,日期格式(長/短/時/無時間/英國/美國)應該在哪裏?我希望能夠在每個字段的基礎上指定長/短/時/無時間 - 即DateOfBirth不關心時間,但CreationDate可能。MVC&日期格式化
使用ASP.NET MVC,在View中看起來並不是一種簡單的方法,這讓我想知道它是否應該作爲FormattedDate字段放在ViewModel中?
有什麼建議嗎?
在基於MVC的體系結構中,日期格式(長/短/時/無時間/英國/美國)應該在哪裏?我希望能夠在每個字段的基礎上指定長/短/時/無時間 - 即DateOfBirth不關心時間,但CreationDate可能。MVC&日期格式化
使用ASP.NET MVC,在View中看起來並不是一種簡單的方法,這讓我想知道它是否應該作爲FormattedDate字段放在ViewModel中?
有什麼建議嗎?
首先是(1:長/短),(2:時間/無時間)和(3:英國/美國)之間的差異。 1.絕對是一個視圖選擇,2.有效地描述數據類型(「DateTime」,「Date」(不存在,你需要創建)),3.是用戶配置文件的事情,再次屬於這個觀點。
到目前爲止,你只有兩種類型DateTime(存在)和Date(不)。這些是您可以期望模型公開的類型。
我讀這兩個部分:
第一部分是一個主要是關注問題,並且應該生活在演示文稿中。我很可能只是爲DateTime/Date/Time製作一些擴展方法,其中包括所需的翻譯,或者甚至可以創建類型的演示版本。
第二部分是模型問題,因爲出生日期(通常)不包括時間,無論您如何呈現它,並且重複演講的開始時間不應包含日期(因爲它是反覆出現,它實際上會有一個開始/結束)。可悲的是.net不包括(據我記得)日期和時間單獨的對象,所以我通常滾動我自己的。
我在這些情況下使用Htmlhelpers。 這是一個原始的返回格式丹麥首選(估計我住在哪裏)。 我有類似的返回日期和時間。
public static class FormatMoneyExtension {
public static string FormatMoney(this HtmlHelper htmlHelper, decimal? amount) {
if (null != amount) {
return ((decimal)amount).ToString("N", System.Globalization.CultureInfo.CreateSpecificCulture("da-DK"));
} else {
return new decimal(0.0).ToString("N", System.Globalization.CultureInfo.CreateSpecificCulture("da-DK"));
}
}
}
它使視圖更具可讀性,即:<%:Html.FormatMoney(Model.amount)%>
。
你可以用類似的方式包裝本地控件,比如texbox等。
好運和快樂的工作
你希望有什麼地方的元數據描述每個字段的格式要求,從現場可以使用的各種意見分開嗎? – AnthonyWJones 2009-02-19 10:44:05