如何使用Globalize.js为ASP.NET Core MVC中的客户端验证配置文化

时间:2017-12-09 11:17:28

标签: asp.net-mvc globalize jquery-globalize

我很难在我的应用中配置客户端验证。我希望它能够接受本地化的pt-BR输入。

我尝试在启动时使用配置应用程序:

var locale = "pt-BR";
RequestLocalizationOptions localizationOptions = new RequestLocalizationOptions {
    SupportedCultures   = new List<CultureInfo> { new CultureInfo(locale) },
    SupportedUICultures = new List<CultureInfo> { new CultureInfo(locale) },
    DefaultRequestCulture = new RequestCulture(locale)
};

它适用于在服务器端呈现货币,日期时间和数字,但客户端验证仍然期望输入en-US

客户端正在使用jquery.validatejquery.validate.unobtrusive 然后我被建议使用Globalize.js。

我通过npm npm instal globalize@1.0.0安装了globalize 它添加了globalize包和cldr.js包。并将jquery.validate.globalize.js下载到项目中

我在HTML

中添加了对js文件的引用
<!-- cldr scripts (needed for globalize) -->
<script src="~/lib/cldrjs/dist/cldr.js"></script>
<script src="~/lib/cldrjs/dist/cldr/event.js"></script>
<script src="~/lib/cldrjs/dist/cldr/supplemental.js"></script>
<script src="~/lib/cldrjs/dist/cldr/unresolved.js"></script>

<!-- globalize scripts -->
<script src="~/lib/globalize/dist/globalize.js"></script>
<script src="~/lib/globalize/dist/globalize/number.js"></script>
<script src="~/lib/globalize/dist/globalize/date.js"></script>

<!-- Validation -->
<script src="~/lib/jquery.validate.globalize.js"></script>

但遗憾的是,当我尝试查找位置Globalize.locale("pt-BR")

时,我收到此错误消息
  

E_MISSING_CLDR:缺少必需的CLDR内容supplemental/likelySubtags

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您需要使用Globalize.load加载CLDR数据。请参阅https://github.com/globalizejs/globalize/blob/master/doc/cldr.md