2009-02-19 202 views
1

在基於MVC的體系結構中,日期格式(長/短/時/無時間/英國/美國)應該在哪裏?我希望能夠在每個字段的基礎上指定長/短/時/無時間 - 即DateOfBirth不關心時間,但CreationDate可能。MVC&日期格式化

使用ASP.NET MVC,在View中看起來並不是一種簡單的方法,這讓我想知道它是否應該作爲FormattedDate字段放在ViewModel中?

有什麼建議嗎?

+0

你希望有什麼地方的元數據描述每個字段的格式要求,從現場可以使用的各種意見分開嗎? – AnthonyWJones 2009-02-19 10:44:05

回答

2

首先是(1:長/短),(2:時間/無時間)和(3:英國/美國)之間的差異。 1.絕對是一個視圖選擇,2.有效地描述數據類型(「DateTime」,「Date」(不存在,你需要創建)),3.是用戶配置文件的事情,再次屬於這個觀點。

到目前爲止,你只有兩種類型DateTime(存在)和Date(不)。這些是您可以期望模型公開的類型。

0

我讀這兩個部分:

  • 格式(長,短)
  • 數據類型(日期和時間,只是日期,只是時間)

第一部分是一個主要是關注問題,並且應該生活在演示文稿中。我很可能只是爲DateTime/Date/Time製作一些擴展方法,其中包括所需的翻譯,或者甚至可以創建類型的演示版本。

第二部分是模型問題,因爲出生日期(通常)不包括時間,無論您如何呈現它,並且重複演講的開始時間不應包含日期(因爲它是反覆出現,它實際上會有一個開始/結束)。可悲的是.net不包括(據我記得)日期和時間單獨的對象,所以我通常滾動我自己的。

0

我在這些情況下使用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等。

好運和快樂的工作