2013-02-23 48 views
0

我有一個MVC視圖,其中列出名爲「CreatedOn」的dateTime類型列,值的格式如下:'DD/MM/YYYY HH:MM:SS', 當我在編輯鏈接點擊要修改的值,我得到了相同的格式,根據MVC文化的日期時間格式

當我修改編輯的值,我得到驗證錯誤:「現場CreatedOn必須是日期

我EF模型類將此字段映射爲DateTime類型。

我的數據庫歸類爲French_CI,在SQL Server表中的字段是SMALLDATETIME型, 當我打開表格看字段格式,我覺得它像「YYYY-MM-DD HH:MM:SS'

我驗證默認的應用程序的文化和發現‘FR-FR’,然後我在web.config文件中添加下一個代碼:

<system.web> 
    <globalization uiCulture="fr-FR" culture="fr-FR" /> 
</system.web> 

但問題仍然保持不變,任何想法請 ?

回答

2

jQuery驗證不瞭解文化。

我相信日期,它只是調用javascript:new Date(value)

你可以用全球化插件和一點javascript來解決這個問題。

微軟寫了一個全球化的插件在這裏:https://github.com/jquery/globalize

那麼你一定要像這樣的東西來代替驗證方法:

$.validator.methods.date = function (value, element) { 
    return this.optional(element) || Globalize.parseDate(value); 
} 

您可能還需要更換爲數字等其他方法 - 例如,請看jquery.validate.js的底部。

+0

在Visual Studio中使用「Manage Nugget Package」,我爲jQuery驗證塊安裝了Globalize和Moon.Validation,它們足以解決這個問題,還是讓我使用上面鏈接中包含的更新插件? – 2013-02-24 11:14:43

+0

剛剛爲jQuery驗證塊安裝了Globalize和Moon.Validation,並在'jquery.validate.js'中用'Globalize.parseDate(value)'替換了日期的驗證方法,並且它工作正常,謝謝。 – 2013-02-26 11:10:37

+0

如果他們只有一個Globalise.parseDate以及:) – SteveCav 2013-05-20 06:13:41