Frage

Ich habe die Bearbeitung diese ursprüngliche Frage, wie ich glaube, ich habe das Problem eingrenzen ...

Ich habe einen Blick in meiner Seite, die mich nicht mehr als $ document.ready innerhalb einer Masterpage Content setzen lassen. Ich habe diese Seite auf die nackten Knochen abgestreift und das einzige, was ist das Besondere daran ist, es eine benutzerdefinierte Route in global.asax hat

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

Jede Idee, warum diese individuelle Route $ document.ready richtig funktioniert, wenn sie in einem Masterpages Contentbereich legte stoppen würde?

War es hilfreich?

Lösung

Ich hatte das gleiche Problem, und es stellte sich heraus, dass, wenn ich eine bestimmte Route verwendet es die empfundene Dateihierarchie der Site wie die ../../Content Link für die JS-Datei geändert nicht mehr funktionierten . Ich reparierte sie durch meine Jquery Skriptverweis zu ändern wie folgt aussehen:

<script src="<%= Url.Content("~/Content/jquery-1.2.6.min.js") %>" type="text/javascript"></script>

Andere Tipps

Ihre Masterseite (oder Ansichtsseite, wenn Sie nicht von Masterseiten verwendet wird) muss jquery verweisen. Dies ist in der neuesten Beta-Version des MVC-Framework enthalten.

Überprüfen Sie, ob Sie haben jQuery im Tag Ihrer Seite enthalten.

Überprüfen Sie die Syntax als auch ...

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

Diese verkürzte Versionen auch funktionieren:

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

Just daran halten irgendwo innerhalb des Inhalts Kontrolle Ihrer Ansicht Seite in einem <script ...>-Tag.

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

Wenn Sie Sachen haben, die auf jeder Seite ausgeführt wird, können Sie das in eine JS-Datei abzulösen und Zugriff auf sie von der Master-Seite. Aber für Aufgaben im Zusammenhang mit einer bestimmten Ansicht, dies ist wahrscheinlich der einfachste Weg zu gehen und am einfachsten zu halten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top