0

問題を絞り込んだと思うので、この元の質問を編集しました...

私のサイトには、マスターページのコンテンツプレースホルダー内に$document.readyを配置できないビューが1つあります。私はこのページを骨の折れるところまで取り除きました、そしてそれについて特別な唯一のことはそれがglobal.asaxにカスタムルートを持っているということです

 routes.MapRoute("Books",
                 "{controller}/{action}/{keywords}/{pageNumber}",
                  new { controller = "Books", action = "SearchResults" }
                 );

このカスタムルートがマスターページのコンテンツプレースホルダーゾーンに配置されたときに$document.readyが正しく機能しなくなる理由はありますか?

4

3 に答える 3

5

私は同じ問題を抱えていましたが、特定のルートを使用すると、../../.js ファイルの Content リンクなど、サイトの知覚されるファイル階層が変更され、機能しなくなったことが判明しました。jquery スクリプト参照を次のように変更して修正しました。

<script src="<%= Url.Content("~/Content/jquery-1.2.6.min.js") %>" type="text/javascript"></script>
于 2008-10-30T18:13:32.020 に答える
2

マスターページ(またはマスターページを使用していない場合はビューページ)はjqueryを参照する必要があります。これは、MVCフレームワークの最新のベータリリースに含まれています。

ページのタグにjQueryが含まれていることを確認してください。

構文も確認してください...

$(document).ready(function() { alert('loaded'); });

これらの短縮バージョンも機能します。

$().ready(function() { alert('loaded'); });
$(function() { alert('loaded'); });
于 2008-10-29T16:51:02.233 に答える
1

<script ...>タグ内のビュー ページのコンテンツ コントロール内のどこかに貼り付けるだけです。

<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
    <div class="contentItem">
        <%!-- yadda --%>
    </div>

    <script type="text/javascript">
        $(document).ready(function() {
         // do your worst
        });
    </script>
</asp:Content>

すべてのページで実行されるものがある場合は、それを .js ファイルに剥がして、マスター ページからアクセスできます。ただし、特定のビューに関連する関数の場合、これがおそらく最も簡単な方法であり、維持するのも簡単です。

于 2008-10-29T17:17:21.273 に答える