2009-06-08 2 views
0

Kann mir jemand sagen, wie der Name der untergeordneten Seite in einem Masterseiten-Szenario abgerufen werden soll? wenn ich die folgende Masterpage Zum Beispiel habe:Masterseiten - Aufruf des Seitennamens

<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
</head> 
<body> 
    <asp:ContentPlaceHolder ID="cphMainContent" runat="server"> 
    </asp:ContentPlaceHolder> 
</body> 
</html> 

Und ich eine Seite mit dem Namen Test.aspx die diese Masterpage erbt, wie kann ich von der Masterpage, weiß, dass Test.aspx angefordert wurde (da dieses masterpage kann von mehr als 1 aspx Seite geerbt werden)?

+0

Was ist das Endziel? Es könnte eine bessere Methode geben, um das zu erreichen, wonach Sie suchen. –

Antwort

1

mit Ihren Kommentaren geht, sehe ich ein paar Optionen:

1) In Ihrer Anmeldeseite auf einem Nicht-Postbacks, die Referrer-Check - das ist die Seite sein, die Sie auf die Anmeldeseite gesendet (Request.UrlReferrer), speichern Sie diese Sitzung für das Postback ihrer Anmeldedaten und senden Sie den Benutzer dann zurück.

2) Verwenden Sie die standard features of ASP.NET für die Anmeldung/Umleitungen (die grundsätzlich das gleiche System wie 1 verwenden).

0

Verwenden Sie einfach die „Seite“ Mitglied der Masterpage

1

Dies ist ein similar question zu dem, was Sie fragen, aber ich würde die Aufmerksamkeit auf die akzeptierte Antwort zahlen, das Kind Seite von der Master-Seite, um herauszufinden, ist wahrscheinlich keine gute Designidee.

+0

Nun, eigentlich versuche ich nichts auf beiden Seiten zu ändern. Ich möchte auf der Masterseite nach einer Sitzungsvariablen suchen, die Anmeldeinformationen enthält, und wenn die Variable nicht gesetzt ist, wollte ich auf eine Anmeldeseite umleiten. Ich wollte eine RefPage-Variable in meinem Querystring pagen, obwohl diese die URL der vorherigen Seite enthält. Auf diese Weise kann ich sie nach der Anmeldung des Benutzers auf die Originalseite zurückverweisen – Icemanind

1

würde ich in die andere Richtung benachrichtigen. Fügen Sie Ihrer Masterseite Eigenschaften hinzu und legen Sie sie dann auf den Inhaltsseiten fest.

In Ihrem Master:

public partial class PortalMaster : System.Web.UI.MasterPage 
{ 

    public string PageSection { get; set; } 
} 

In ASPX hinzufügen diese Anweisung:

<%@ MasterType VirtualPath="PortalMaster.master" %> 

Dann in Ihrem aspx.cs gesetzt den Wert der Eigenschaft wie folgt:

Master.PageSection = "about"; 
+0

Nun, was ich versuche zu tun ist auf beiden Seiten nichts ändern. Ich möchte auf der Masterseite nach einer Sitzungsvariablen suchen, die Anmeldeinformationen enthält, und wenn die Variable nicht gesetzt ist, wollte ich auf eine Anmeldeseite umleiten. Ich wollte eine RefPage-Variable in meinem Querystring pagen, die die URL der vorherigen Seite enthält. Auf diese Weise kann ich nach der Anmeldung des Benutzers auf die Originalseite verweisen. – Icemanind

+0

Auf der Anmeldeseite nach Request.UrlReferrer suchen . Wenn es einen Wert (nicht null) hat, speichern Sie es in einer versteckten Eingabe und leiten Sie es nach dem Anmelden um. Es ist kein Querystring erforderlich. –

0

Vom Codebehind in der MasterPage wird Ihnen die Page.AppRelativeVirtualPath Eigenschaft den Pfad mitteilen.