MVC 5 – 无法实现全球化运行

我想添加全球化,因为该网站要求用户提供日期。 而我的德国用户想输入“31.12.1966”而不是“1966-12-31”。

所以我将nuget-Packages“jQuery.Validation.Globalize”和“jquery-globalize”添加到项目中。

现在我无法配置我的BundleConfig! 根据我的研究,我知道,我需要globalize.js和其他一些文件。 所以我试着做一个bündle:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.validate*")); bundles.Add(new ScriptBundle("~/bundles/global").Include( "~/Scripts/globalize.js", "~/Scripts/cldr.js").IncludeDirectory("~/Scripts/cldr/", "~/Scripts/globalize/") ); 

在视图中使用:

 ... @section Scripts { @Scripts.Render("~/bundles/global") @Scripts.Render("~/bundles/jqueryval") @Scripts.Render("~/bundles/unobtrusiveajax")  $(function () { $.validator.methods.date = function (value, element) { Globalize.culture("de-DE"); // you can alternatively pass the culture to parseDate instead of // setting the culture above, like so: // parseDate(value, null, "en-AU") return this.optional(element) || Globalize.parseDate(value) !== null; } });  } 

但是我收到一个错误:

 Error at line 9, column 5 in http://localhost:58289/Scripts/jquery.validate.globalize.js 0x800a138f - runtimeerror in JavaScript: The property "methods" of a undefindes or null-pointer can not bei called 

我翻译了这封德国原版的信息:

 Ausnahmefehler in Zeile 9, Spalte 5 in http://localhost:58289/Scripts/jquery.validate.globalize.js 0x800a138f - Laufzeitfehler in JavaScript: Die Eigenschaft "methods" eines undefinierten oder Nullverweises kann nicht abgerufen werden. 

我需要更多/其他文件?

我能做什么? 有帮助吗?

真诚的彼得

我这样解决了:

在我看来是以下脚本块:

               

我的数据类有这样的注释:

 ... [Required] [DataType(DataType.DateTime)] [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy}")] public DateTime Geburtsdatum { get; set; } ... 

而且 - 非常重要!! - 你必须得到数据文件! 这是nessecary,因为clrd-data 不是 NuGet-Packages“jQuery.Validation.Globalize”/“jquery-globalize”的一部分。 (是的,它在项目页面上提到 - 但我没看到它...... :-()

我安装了Bower(每个NuGet),然后通过Bower安装了Cldr数据。 例:

  bower install cldr-dates-full 

(参见包装概述和安装说明1 )

然后我将所需的json文件(在这里找到一个用于文件选择2的在线工具)从目录“bower_components”移动到“scripts \ cldr \ main \ de”分别“scripts \ cldr \ supplemental”。

我将它们添加到项目中并将其标记为“内容”,“无副本”。

所以最后它的作品!!! 🙂

如果我管理它来捆绑js-和json-文件,我会更新答案。