Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法获取属性的值';不引人注目的';:对象为null或未定义_C#_Asp.net Mvc_Jquery - Fatal编程技术网

C# 无法获取属性的值';不引人注目的';:对象为null或未定义

C# 无法获取属性的值';不引人注目的';:对象为null或未定义,c#,asp.net-mvc,jquery,C#,Asp.net Mvc,Jquery,当我运行代码时,会出现以下错误: 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.

当我运行代码时,会出现以下错误:

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 

代码迷的意思是说,您是否在web.config中添加了不引人注目的启用JavaScript的密钥

您需要在appSettings中添加以下内容:

<appSettings>
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

找到了问题

我有另一个局部视图,它添加了一个脚本“~/Scripts/jquery…”

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


谢谢你的猜测。

我收到此错误消息的原因不同,因此我想我会与大家分享

我们使用Microsoft的CDN为
jquery.validate.min.js
文件提供服务,我们的客户端使用的过滤器将
asp.netcdn.com
放在黑名单上,阻止加载


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

我之所以这样做,是因为另一个更为愚蠢的原因。在我的页面中,jquery.validate.min.js之前有jquery.validate.unobtrusive.js


只需将validate移到validate上面,就可以解决问题

我刚才也处理了这个问题。尽管安装了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>


如果您确定所有文件都在那里(例如“jquery.validate.unobtrusive.js”),您应该使用“grep”命令或“Notepad++”搜索“unobtrusive”元素来检查所有脚本。我在2分钟前从软件包管理器控制台更新了软件包,所以它们应该是正确的。我检查了,元素在那里,所以确保使用诸如Firebug、Chrome或您拥有的调试器将脚本正确加载到您的客户端页面。此外,请尝试在代码页中使用“script”标记直接引用脚本。这是在使用像bundle之类的包装器时可能遇到的问题。是的,这行代码给出了错误:jQuery.validator.unobtrusive.prototype.parse.call(这是选择器);非常感谢你。我为这个问题争论了5个多小时。