Hat einer MasterPage wissen, welche Seite angezeigt wird?
Wenn ich navigieren auf einer Webseite Nutzung von MasterPages, ist für die Anwendung weiß, welche Seite ich bin auf? Wenn dem so ist, speichert er es in einem Objekt auf die ich zugreifen kann?
Den Grund ich Frage ist, so kann ich diese ersetzen:
//masterpage
<div id="nav_main">
<ul><asp:ContentPlaceHolder ID="navigation" runat="server">
</asp:ContentPlaceHolder></ul>
</div>
//content page(s)
<asp:Content ContentPlaceHolderID="navigation" ID="theNav" runat="server">
<li><a href="default.aspx">Home</a></li>
<li id="current"><a href="faq.aspx">FAQ</a></li>
<li><a href="videos.aspx">Videos</a></li>
<li><a href="#">Button 4</a></li>
<li><a href="#">Button 5</a></li>
</asp:Content>
Mit eine elegantere Lösung für die navigation, die highlights der link zu der Seite, indem Sie mit der Liste Element-ID "current". Die derzeit jede Seite erstellt die navigation mit der jeweiligen link-ID-Satz zu aktuellen.
InformationsquelleAutor Anders | 2008-10-09
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde mich Chris: verwenden Sie ein Steuerelement zu behandeln Anzeige dieses Menüs und machen Sie sich bewusst, was für Links sollten hervorgehoben werden. Hier ist eine Methode, die ich regelmäßig benutze. Es kann komplexer werden, wenn Sie mehrere Seiten benötigen würde, den gleichen link Stil anders, aber Sie bekommen die Idee.
Um die aktuelle request-URL in der master-Seite, die Sie tun würde:
Ich auch empfehlen bewegen Sie Ihre navigation in die master-Seite, statt von der content-Seite. Dadurch wird es leichter zu pflegen /access.
Ja, Verwenden Sie den untenstehenden code in Ihre master-Datei. Es wird Ihnen der Inhalt der Seite name.
Sollten Sie in der Lage sein, um die Seite mit dem Zugriff auf die Seite-Eigenschaft. IE:
Würden Sie wahrscheinlich verwenden Sie einfach eine der Pfad der Anforderung innerhalb der master-Seite die aktuelle. Ich würde wahrscheinlich auch eine Eigenschaft, die auf der master-Seite, um es zu überschreiben, so dass die Seiten ohne links oder so könnte es zu etwas vernünftigen.
Klappte es bei mir auf diese Weise - Dank Jared
Dies ist, was ich getan habe, um unsere nav-Menü zu markieren, wird der aktuelle Menüpunkt für die Seite, die wir betrachten. Der code ist in der master-Seite.
Sie erhalten grundsätzlich den Dateipfad (Jared ' s way)
Wir verwenden die "~" in unsere links, so hatte ich zu Streifen, die aus.
Die Iteration der menuItems-Sammlung von Menu-Steuerelement.
Vergleichen Sie die navigateUrl-Eigenschaft.
(Ich bin nicht der beste coder und noch schlechter im erklären - aber es funktioniert und ich war ziemlich chuffed mit ihm!)
Alternativ können Sie Ihre Suche nach Seitentitel, wenn Sie einen bestimmten Titel auf der Kind-Seite statt masterpage versuchen:
Hoffe, es hilft.
dies ist in C#
Regelung der Schifffahrt, die nicht der master-Seite sollte verantwortlich sein, von welcher Seite ist der zurzeit hervorgehoben wird.
Entweder die Seite, die geladen wird, er sollte die navigation item, wer es ist, oder von der nav-Kontrolle selbst sollte im Auge behalten.
Der Punkt ist, dass master-Seiten sollen einfach sein, einen Halter, der Inhalt wird angezeigt. Sie sollen nicht alles ansteuern.
versuchen
Erhalten Sie die Masterseite für die aktuelle Seite.
Gibt es auch die Anfrage.RawURL