2013-02-23 39 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