【问题标题】:ASP MVC 4 globalizationScript, jquery and submitted dataASP MVC 4 全球化脚本、jquery 和提交的数据
【发布时间】:2013-06-06 05:16:57
【问题描述】:
我正在尝试使用以下内容:
<script src="/Scripts/globalize.js" type="text/javascript"></script>
@Html.GlobalizationScript("~/Scripts/cultures/","~/Scripts/cultures/")
因此,不显眼的客户端验证适用于客户端文化,但是,当数据发布到服务器时,它并没有像人们期望的那样被“翻译”成服务器文化。那么,如果它仍然无法在服务器端工作,那么有效的客户端验证有什么意义呢?我错过了什么吗?有什么简单的方法可以做到这一点?就像 google chrome html 5 日期选择器一样,使用本地日期但将其转换为服务器(或不变)文化。
【问题讨论】:
标签:
jquery
asp.net-mvc
globalization
unobtrusive-validation
【解决方案1】:
基本上,您需要在服务器和客户端之间同步文化。
首先,您需要将服务器文化传递给客户端。你可以把它放在你的视图/布局 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 的更多信息 this post,解释得很好。