2012-01-15 85 views
0

如何確定從母版頁加載方法請求哪個內容頁?例如,我擁有使用母版頁的內容頁。如何確定由這三個頁面中的哪一個用戶從母版頁?如何確定在母版頁中請求的內容頁面

感謝

+1

只是爲了澄清:你的網頁實際上並不從主網頁,他們只是「使用繼承'一個母版頁。頁面從System.Web.UI.Page繼承。 – 2012-01-15 21:21:26

回答

1

您可以通過使用ContentPlaceHolder's Page屬性決定從母版頁的內容頁面。以下代碼假定主頁上的內容佔位符被稱爲MainContent

// Page_Load in your master page code behind file 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (this.MainContent.Page is _Default) 
    { 
    // The default page 
    } 

    if (this.MainContent.Page is About) 
    { 
    // The About page. 
    } 
} 
+0

'Master'頁面本身具有'Page'屬性,因此您可以將'this.MainContent.Page'更改爲'this.Page'或者簡單地'Page'。 – 2012-01-15 21:38:47

1

master page is actually a subclass of System.Web.UI.UserControl,因此它具有通過其Page property一個參考頁。例如,如果你想知道ASPX文件和/或它的文件夾,您可以使用下面的代碼:

protected void Page_Load(object sender, EventArgs e) 
{ 
    // Something like ~/Folder/Default.aspx 
    string file = Page.AppRelativeVirtualPath; 

    // Something like ~/Folder/ 
    string folder = Page.AppRelativeTemplateSourceDirectory; 
} 
+0

這會工作,假設你得到正確的'魔術串'值來匹配。如果可能(通常是這樣),我寧願測試一下'Page'對象的類型。 – 2012-01-15 21:39:48

+0

當然,這就是[Hans'answer](http://stackoverflow.com/a/8871025/4830)所示。我只是想添加一些額外的信息,以防OP需要關於ASPX文件而不是代碼隱藏類的信息。 – 2012-01-15 22:02:47

相關問題