首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET:在母版页中使用通用的页面标题,每个页面都添加特定于页面的标题?

ASP.NET:在母版页中使用通用的页面标题,每个页面都添加特定于页面的标题?
EN

Stack Overflow用户
提问于 2010-08-26 10:15:08
回答 5查看 3.6K关注 0票数 0

我的母版页如下所示:

代码语言:javascript
复制
<head runat="server">
    <title>
        <asp:ContentPlaceHolder ID="PageTitlePlaceHolder" runat="server" />
    </title>

内容页面如下所示:

代码语言:javascript
复制
<asp:Content ID="TitleContent1"
     ContentPlaceHolderID="PageTitlePlaceHolder" runat="Server">
    My Page
</asp:Content>

这是通过在页面上放置特定于内容页面的标题(本例中为“My Page”)来实现的。现在,我想在母版页中为站点名称的标题添加一个全局前缀。所以我想:

代码语言:javascript
复制
<head runat="server">
    <title>
        Example.com:
        <asp:ContentPlaceHolder ID="PageTitlePlaceHolder" runat="server" />
    </title>

然而,当我这样做时,内容页面仍然呈现在标题中没有"Example.com“的情况下,就像被忽略了一样。

为什么会发生这种情况,我如何实现这一点?

EN

回答 5

Stack Overflow用户

发布于 2010-08-26 10:49:11

在MasterPage的后台代码中尝试以下代码:

代码语言:javascript
复制
void MasterPage_PreRender(object sender, EventArgs e)
{
    Page.Title = "Example.com - " + Page.Title;
}
票数 3
EN

Stack Overflow用户

发布于 2012-03-15 15:11:35

从母版页中删除title标记,并使用Martin提供的代码。现在,在您的内容页面中,在文件顶部的Page标记中设置标题,如下所示:

代码语言:javascript
复制
<%@ Page ... Title="Contact" %>
票数 2
EN

Stack Overflow用户

发布于 2017-11-14 05:47:11

我发现最可接受的变通方法是使用多个ContentPlaceHolder控件。

代码语言:javascript
复制
<head runat="server">
    <title>
        <asp:ContentPlaceHolder ID="cphMasterTitle" runat="server">Example.com: </asp:ContentPlaceHolder>
        <asp:ContentPlaceHolder ID="cphSubtitle" runat="server" />
    </title>
</head>

请注意,<title>中的任何其他内容,包括空格,都会被剥离。ContentPlaceHolder内容之间的任何间距都需要在控件内完成。

当我不想向内容页面公开占位符时,我也使用过<asp:Literal runat="server">Example.com: </asp:Literal>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3571618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档