如何通过内联代码获取当前页面的Title属性?

时间:2012-11-14 17:01:27

标签: asp.net vb.net

我设置了我的页面标题:

<%@ 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%>返回“我的网站名称 - 子页面标题”,而不仅仅是“子页面标题”。

如何才能将其拉到当前子页面的title属性?

2 个答案:

答案 0 :(得分:0)

如果

  

“我的网站名称 - ”

是一个固定的字符串,你可以这样做:

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

或者你可以创建一个静态格式化器方法,并且这样做:

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

答案 1 :(得分:0)

我的建议是在你的代码中创建一个类常量

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 

然后在您设置Page.Title以在标题中包含您的应用程序名称时,您仍然可以访问常量。这将防止需要额外的方法或字符串解析。如果您不想使用常量,因为您喜欢使用Html side 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