【问题标题】:DateTime format according to the culture in MVC根据 MVC 中的文化的 DateTime 格式
【发布时间】:2013-02-23 18:39:00
【问题描述】:

我有一个 MVC 视图,其中列出了一个名为“CreatedOn”的 dateTime 类型列,值的格式如下:'DD/MM/YYYY HH:MM:SS', 当我点击编辑链接来修改一个值时,我获得了相同的格式,

当我修改已编辑的值时,我收到验证错误:“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>

但是问题还是一样,请问有什么办法吗?

【问题讨论】:

    标签: jquery validation asp.net-mvc-4 jquery-validate culture


    【解决方案1】:

    jQuery Validate 不了解文化。

    我相信日期,它只是调用 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 底部的示例。

    【讨论】:

    • 在 Visual Studio 中使用“管理块包”,我已经为 jQuery 验证块安装了 Globalize 和 Moon.Validation,它们足以解决这个问题还是让我使用您链接中包含的更新插件上面?
    • 刚刚为 jQuery 验证块安装了 Globalize 和 Moon.Validation,并将 jquery.validate.js 中的日期验证方法替换为 Globalize.parseDate(value) 并且它有效,谢谢。
    • 要是他们也有 Globalise.parseDate 就好了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2019-08-23
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多