无法获取属性的值'不引人注目'对象为空或未定义
本文关键字:对象 未定义 引人注目 获取 属性 | 更新日期: 2023-09-27 18:17:12
当我运行代码时,我得到了这个错误:
Unable to get value of the property 'unobtrusive': object is null or undefined
这是正常的,但我添加了所有我需要的jquery的东西:
jquery.validate-vsdoc.js
jquery.validate.js
jquery.validate.min.js
jquery.validate.unobtrusive.js
jquery.validate.unobtrusive.min.js
jquery.unobtrusive-ajax.js
jquery.unobtrusive-ajax.min.js
我把它加载到Main表单上:
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/jqueryval")
我的bundle配置有:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
我的Script
文件夹中有所有相关的文件。
为什么我得到这个错误?如果你需要查看任何文件,请评论,我很乐意发布它
编辑:脚本已加载(我检查过)这一行给出了错误:
jQuery.validator.unobtrusive.prototype.parse.call(this, selector);
错误:SCRIPT5007: Unable to get value of the property 'unobtrusive': object is null or undefined
找到问题了
我有另一个部分视图,其中添加了一个脚本"~/Scripts/jquery…"
我在主视图中有一个bundle而这个在一个菜单的部分中它一直在呈现。似乎只考虑了最后一个,不引人注目的没有添加在那里。把它从分部视图中移除,只在主视图中留下一个,就解决了这个问题。
我得到了另一个,更骨子里的原因。在我的页面中,jquery.validate.min.js之前有jquery.validate. unobusive .js。
只是将validate移到validate validate上面。不引人注目解决了这个问题。
我得到这个错误消息是由于一个不同的原因,所以我想我将分享。
我们使用微软的CDN来提供jquery.validate.min.js
文件,我们的客户端使用了一个过滤器,将asp.netcdn.com
列入黑名单,阻止它加载。
因此,让客户端将CDN列入白名单或更改CDN将解决这个问题。实际上,我们应该有一个后备方案,以便在CDN不可用的情况下提供本地版本,但我们还没有实现。
我刚刚也处理过这个问题。尽管安装了用于Unobtrusive和Unobtrusive验证的nuget包,我仍然得到错误。
在我的例子中,这是因为我忘记包含一个必需的库。原来jquery.validate. unobsive .min.js依赖于jquery.validate.min.js。所以附加的脚本文件应该是:
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
Code Junkie的意思是你是否在web.config中添加了不显眼的javascript启用键
你需要把它添加到appSettings:
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>