5

我正在使用最新的MVC框架和捆绑软件。Uncaught TypeError:无法设置属性undefined

默认 “jqueryval” 捆绑MVC创建导致JavaScript错误

我的网页上的脚本输出像这样

<!-- In head --> 
<script src="/Scripts/modernizr-2.6.2.js"></script> 
<script src="/Scripts/jquery-2.0.2.js"></script> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript" src="/Content/Misc.js"></script> 


<!-- Bottom of doc --> 
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script> 
<script src="/Scripts/jquery.validate.unobtrusive.js"></script> 

我的包:

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
     "~/Scripts/jquery.validate*", 
     "~/Scripts/jquery.unobtrusive*")); 

是什么出错了?

+0

如果订单有问题,请为每个脚本文件创建一个捆绑包,并按照需要的顺序将它们加载到代码中。 –

+0

我以为这可能是它,但手动将它放在它没有区别 – Chris

+1

这可能是一个愚蠢的问题,但你实际上包括** jQuery **在您的网页以及?它似乎指的是未定义的对象,该对象应该是jQuery。 – Ian

回答

8

在您的软件包中,您将其设置为包括jquery.validate*jquery.unobtrusive*,这通常可以正常工作。但是如果你看看你的输出,并不是所有应该在那里的文件都在那里。关键是jquery.unobtrusive.validate要求包含jquery.validate(正如你所看到的,它不是,通过你的输出)。显然,这些文件实际上并不在您的项目中,因此未被捆绑器找到。确保项目中包含所有必需的文件,以便您的打包商可以找到并输出它们。

0

我发现用完整的js脚本名替换通配符起作用了。

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
      "~/Scripts/jquery.validate.min.js", 
      "~/Scripts/jquery.validate.unobtrusive.min.js" 
      )); 
相关问题