2013-04-15 41 views
6

我有一個MVC4應用程序,它在英國編譯並託管在美國服務器上。在我的模型中,我有一個需要的日期字段。驗證日期取決於地區

附加到該字段是日期選擇器,在選擇日期時,它將日期設置爲英國格式「DD/MM/YYYY」,例如23/12/2013。在提交表單時,應用程序會拋出驗證錯誤,因爲它沒有預期格式。

在MVC4我該怎麼辦:

  1. 接受兩個日期格式,即覆蓋的日期格式?我已經設置了日期格式,但不能指定多個日期格式
  2. 服務器端我使用Linq將日期保存到數據庫。這也會導致錯誤的格式不正確。我懷疑我需要轉換到英國的日期?
  3. 加載詳細信息時,根據用戶的位置以正確的格式輸入日期
  4. 檢測用戶服務器端的位置?

有沒有人有關於如何基於用戶的全球化非常驗證的任何細節?

感謝

回答

1

在web配置,在全球化的部分,設置文化爲「自動」。 這將使用用戶當前的文化(包括數字和日期時間格式)

<globalization culture="Auto" /> 

.NET框架將解析,並根據用戶的文化和MVC和實體都將正常工作呈現數據。

2

您是否在web.config中添加了以下細分受衆羣?

<globalization 
    enableClientBasedCulture="true" 
    uiCulture="auto" 
    culture="auto" /> 

並以日期時間格式在代碼中讀取日期。這不應該給你一個問題。

另一種方法是在你的服務器端代碼讀取THA日期始終爲DateTimeUTC當你永遠在屏幕上顯示的日期,使用.ToLocalTime()