4

ASP .Net MVC4 Web アプリケーションがあります。その中に、_Layout.cshtml の通常の html があり、デフォルトの Home/Index が読み込まれます。すべて正常に動作します。

私のインデックスでは、部分ビューも読み込んでいます。これもうまくいきます。問題はありません。

次のサイトの UI ツールを使用しています。

http://www.keenthemes.com/preview/index.php?theme=メトロニック

問題は、主に HTML4 であり、すぐに使用できる MVC 用に設計されていないように見えるため、希望どおりに動作させるために少し調整する必要があることです。(非常に基本的なもの以上のものはありません)。たとえば、一部をインデックスに移動し、Renderbody() を使用してそれをロードして、実際の html 構造が変更されないようにします。これを何百万回も実行して、終了タグや問題の原因となる可能性のあるものを見逃していないことを確認しました.

ここまでは全く問題ありません。すべてが正常にロードされます。

引き続き 2 番目のビューとその部分を作成して、サイトの他の部分を抽出しました。いつものように、赤ちゃんが最初に歩きます。他のコードを抽出する前に、最初のページで小さな「Hello World」を使用し、パーシャルで同様の文字列を使用して、それが機能していることを確認しました。そうだった。

URL Home/ActionName を入力すると、すべてがリロードされますが、見栄えが悪くなります。そして、私はこのエラーメッセージを受け取ります:

0x800a1391 - JavaScript ランタイム エラー: 'jQuery' は定義されていません

以下は、それを明確に定義する私のコードです。

<!-- BEGIN CORE PLUGINS -->
<script src="assets/plugins/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
    jQuery(document).ready(function ()
    {
        App.init(); // initlayout and core plugins
        _Layout.init();
        _Layout.initJQVMAP(); // init index page's custom scripts
        _Layout.initCalendar(); // init index page's custom scripts
        _Layout.initCharts(); // init index page's custom scripts
        _Layout.initChat();
        _Layout.initDashboardDaterange(); //Red date range
        _Layout.initIntro(); //Pop up messages
    });
</script>

メッセージが表示されると、jQuery(document).ready 部分が表示されます。

繰り返しますが、ページを正常にロードすると、正常に動作します。Home を単独で入力すると、正常に動作します。このエラー メッセージが表示されるのは、Home/AnythingElse と入力したときだけです。Home/ と入力して Index ファイルをロードしても、このエラー メッセージが表示されます。

jQuery が定義されているのに、なぜポストバックでこれが起こるのでしょうか?

どんな助けでも大歓迎です。

4

3 に答える 3

9

jQuery の src をサイト ルートから絶対になるように設定してみてください。

<script src="/assets/plugins/jquery-1.8.3.min.js" type="text/javascript"></script>

/前に注意してassetsください-srcパスがブラウザで始まらない場合/、ブラウザは現在のパスに関連するアセットをロードしようとするため、例では末尾のスラッシュを追加するHomeとjQueryをロードしようとしますHome/assets/plugins/...

于 2013-04-11T12:48:35.293 に答える