Asp.net
如何在 ASP.NET 3.5 中從網頁內容頁面設置頁面標題
我已經閱讀了很多關於如何執行此操作的文章/文章,但我仍然沒有從內容頁面獲取頁面標題設置。我的頁面呈現正常,但我無法從內容頁面獲取標題集(所有頁面都根據母版頁設置了標題)。這是我的母版頁的程式碼隱藏:
Partial Class zSEO Inherits System.Web.UI.MasterPage Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Page.Header.Title = "Dynamically set in Master page" End Sub End Class這是母版頁的其餘部分:
<%@ Master Language="VB" EnableTheming="true" Inherits="zSEO" CodeFile="zSEO.master.vb" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div id="container"> <div id="content"> <asp:contentplaceholder id="ContentPlaceHolder1" runat="server"> </asp:contentplaceholder> </div> </div> </form> </body> </html>然而,我想在網頁內容頁面中建立頁面的值,並將其放置在我的測試內容頁面中:
Public Partial Class zShowAd Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Page.Header.Title = "Dynamically set TITLE value in the content(child) page" End Sub End Class奇怪的是,我無法讓調試器在內容頁面的上面一行停止 - 只能在母版頁的相應行上停止。顯然,我對此感到困惑。
我讀過還有其他方法可以做到這一點,但這似乎可以從我在 Scott Mitchell 的教程中讀到的內容:Dynamicly setting the Page Title in ASP.NET。具體來說,我試圖從文章中遵循這一點: “此外,如果您正在使用母版頁,則此程式碼可以按照所寫的方式從母版頁或使用母版頁的 ASP.NET 頁面工作。在這種情況下, 該區域應該在母版頁中定義,但是 ASP.NET 頁面仍然可以通過 Page.Header 訪問它。”
所以需要發生的是
MasterPage.Master
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init Me.Page.Title = "Dynamically set in Master page" End Sub預設.aspx
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Me.Page.Title = "Dynamically set in ASPX page" End Sub這樣,您的母版頁標題就設置在您的內容頁標題之前。如果您沒有從內容頁面設置標題,則母版頁將是預設標題。如果您確實從內容頁面設置了標題,那麼它將覆蓋它。