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-文件,我会更新答案。
- 为什么Ajax在第一次请求时正常工作,但在第二次请求时返回新页面上的部分视图?
- 使用Bootstrap在ASP.NET MVC5中无法运行客户端validation
- Jquery ajax调用不会访问控制器:无法加载资源:服务器响应状态为500(内部服务器错误)
- 无法使用jquery打开kendo网格的编辑弹出窗口
- 如何在从AJAX调用中附加表单时正确设置MVC 5不显眼的validation?
- 将html表导出为CSV文件,始终返回空文件
- MVC 5 + $ Post()函数在托管服务器后无法正常工作
- 为什么Asp.Net MVC 5将@ Scripts.Render(“〜/ bundles / jquery”)放在_Layout.cshtml的底部?
- JQuery UI自动完成ASP.NET MVC5渲染列表