5

最新のMVCフレームワークとバンドルを使用しています。ある何Uncaught TypeError:未定義のプロパティ 'unobtrusive'を設定できません。

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

:MVCを作成

デフォルト "jqueryval" バンドルは、私のページの

スクリプトはそう

<!-- 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> 

マイバンドルように出力されるJavaScriptのエラーを引き起こしています間違っている?

+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" 
      ));