0

我这样设置我的页面标题:

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

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

我怎样才能让它只拉当前子页面的标题属性?

4

2 回答 2

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 端的 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 
于 2012-11-14T17:07:16.893 回答
0

如果

“我的网站名称——”

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

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

或者您可以创建一个静态格式化程序方法并这样做:

<% Namespace.Classname.FormatMyPageName(Me.Page.Title) %>
于 2012-11-14T17:05:23.673 回答