2012-11-14 33 views
0

設置我的頁面標題像這樣:如何通過內嵌代碼獲取當前頁面的Title屬性?

<%@ Page Title="Sub Page Title" %> 

在我的母版頁的Page_Load事件中,我修改了標題與站點名稱的前綴他們,就像這樣:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Page.Title = "My Website Name - " + MyMainContentPlaceholder.Page.Title 
End Sub 

現在..在我的每個內容頁面都有一個標題,我想匹配頁面標題。但是當我嘗試使用內聯代碼設置文本時,它會抓取最終連接的母版頁標題。

<%@ Page Title="Sub Page Title" ...blah blah... %> 

<asp:Content ID="Content1" ContentPlaceHolderID="MyMainContentPlaceholder" runat="server"> 
    <div class="pageHeader"><%=Me.Page.Title%></div> 
</asp:Content> 

<%=Me.Page.Title%>返回「我的網站的名稱 - 子頁面標題」,而不只是「子頁面標題」。

我怎樣才能得到它只拉當前子頁面的標題屬性?

+0

您已經定義在頁面加載頁面標題包括「我的網站名稱」,這就是爲什麼它返回像這樣 –

+0

你不能把一切都連接到連字符的右邊? 'Me.Page.Title.Split(' - ')[1] .Trim()'ps。如果沒有任何頁面標題已經有連字符,這將工作得更好 – paul

+0

這與C#無關,刪除標籤...下次請正確標記您的問題。 – walther

回答

0

如果

「我的網站的名稱 - 」

是一個固定的字符串,那麼你可以這樣做:

Me.Page.Title.Substring("My Website Name -") 

,或者你可以創建一個靜態的格式化器方法並且這樣做:

<% Namespace.Classname.FormatMyPageName(Me.Page.Title) %> 
0

我的建議是在你的代碼,當你設置Page.Title包括在標題您的應用程序的名稱並創建背後

Private Const PAGE_SUB_TITLE As String = "Sub Page Title" 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Page.Title = "My Website Name - " & PAGE_SUB_TITLE; 
End Sub 

然後一類常量,你仍然有你的訪問不變。這將防止需要額外的方法或字符串解析。如果你不想因爲你喜歡使用HTML側Title屬性,而不是使用恆定的,你總是可以只讓一個變量,並使用它略有不同:

Private _pageSubTitle As String 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    _pageSubTitle = Page.Title 
    Page.Title = "My Website Name - " & PAGE_SUB_TITLE; 
End Sub 
相關問題