无法获取属性的值'不引人注目'对象为空或未定义

本文关键字:对象 未定义 引人注目 获取 属性 | 更新日期: 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>