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" 
      )); 
相關問題