8

当我运行我的代码时,我得到了那个错误:

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

我将其加载到我的主窗体上:

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/jqueryval")

我的捆绑配置有:

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 
4

5 回答 5

9

发现了问题。

我有另一个部分视图,它正在添加一个脚本“~/Scripts/jquery ...”

所以我在主视图中有这个包,而这个包在一个总是呈现的菜单的一部分中。似乎只考虑了最后一个,并且没有在其中添加 Unobtrusive。将其从局部视图中删除并仅将其保留在主视图中即可解决此问题。

谢谢你的猜测。

于 2013-06-07T15:14:11.547 回答
4

我得到这个是因为另一个更骨感的原因。我的页面中有 jquery.validate.unobtrusive.js 在 jquery.validate.min.js 之前。

只需将 validate 移到 validate validate.unobtrusive 上方即可解决问题。

于 2016-05-18T13:56:22.640 回答
2

我收到此错误消息的原因不同,所以我想分享一下。

我们使用 Microsoft 的 CDN 来提供jquery.validate.min.js文件,而我们的客户正在使用一个过滤器,该过滤器asp.netcdn.com在黑名单上阻止了它的加载。

因此,让客户将 CDN 列入白名单或更改 CDN 将解决此问题。确实,我们应该有一个备用方案,以便在 CDN 不可用但我们尚未实施的情况下提供本地版本。

于 2015-02-12T14:41:34.283 回答
0

我也刚刚处理了这个问题。尽管为Unobtrusive和 Unobtrusive 验证安装了 nuget 包,但我仍然收到错误消息。

就我而言,这是因为我忘记包含所需的库之一。原来 jquery.validate.unobtrusive.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>
于 2019-12-16T21:37:47.443 回答
-2

Code Junkie 的意思是您是否在 web.config 中添加了不显眼的 javacript enabled 密钥。

您需要在 appSettings 中添加:

<appSettings>
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
于 2013-06-07T09:08:17.777 回答