0

我试图使用以下内容:

<script src="/Scripts/globalize.js" type="text/javascript"></script>
@Html.GlobalizationScript("~/Scripts/cultures/","~/Scripts/cultures/")

因此,不显眼的客户端验证适用于客户端文化,但是,当数据发布到服务器时,它并没有像人们期望的那样被“翻译”成服务器文化。那么,如果它仍然无法在服务器端工作,那么有效的客户端验证有什么意义呢?我错过了什么吗?有什么简单的方法可以做到这一点?就像 google chrome html 5 日期选择器一样,使用本地日期但将其转换为服务器(或不变)文化。

4

1 回答 1

0

基本上,您需要在服务器和客户端之间同步文化。

首先,您需要将服务器文化传递给客户端。你可以把它放在你的视图/布局 HTML 语言属性中:

<html lang="@System.Globalization.CultureInfo.CurrentUICulture.Name">

另一种选择是将此信息放在元标头中

获得这些信息后,您需要通过执行以下操作在 Globalize.js 中初始化客户端文化:

$(document).ready(function () {

    // Set Globalize to the current culture driven by the html lang property
    var currentCulture = $("html").prop("lang");
    if (currentCulture) {
        Globalize.culture(currentCulture);
    }
});

并记住包含正确的 globalize.culture js 文件。

~/scripts/globalize/globalize.culture.xx-XX.js

来自 John Reilly的这篇文章的更多信息,很好地解释了这一点。

于 2014-05-22T14:19:19.687 回答