2

我正在使用 ASP.NET 开发一个网站。我想要这种形式的网页标题:

<page name> - <site name>

例如:

Home - Stack Overflow

我可以- <site name>在母版页中写一部分吗?在<page name>内容页面中?

我试过在母版页中写这个,但不起作用:

<head runat="server">
    <title><asp:ContentPlaceHolder ID="placeHolder_title" runat="server"/> - Stack Overflow</title>
</head>

这在内容页面中:

<asp:Content ID="content_title" ContentPlaceHolderID="placeHolder_title" runat="server">Home</asp:Content>

Home显示一个。

4

2 回答 2

2

您可以在代码隐藏中执行此操作:

protected void Page_Load(EventArgs e)
{
    if(!Page.IsPostBack)
    {
         Page.Title = "MyPageName - " + Page.Title;
    }
}
于 2013-08-20T12:40:43.327 回答
-1

在这种情况下,您可以使用 a Literal,并将Text属性指定为默认值(例如,站点名称),并针对其他页面进行调整:

<title><asp:Literal runat="server" ID="TitleLiteral" Text="Site Name" /></title>

然后您可以让母版页检查Title当前页面的属性值并应用它。

if (!string.IsNullOrEmpty(Title)) {
  TitleLiteral.Text = Title + " - " + TitleLiteral.Text;
}

假设“主页”页面没有标题,只会显示默认值,那些确实有标题值的页面将在它前面。

于 2013-08-20T12:40:51.833 回答