使用ASP.NET,如何在母版页中编写部分标题而在内容页面中另外编写部分?

时间:2013-08-20 12:37:42

标签: asp.net

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

<page name> - <site name>

e.g:

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。     

2 个答案:

答案 0 :(得分:2)

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

protected void Page_Load(EventArgs e)
{
    if(!Page.IsPostBack)
    {
         Page.Title = "MyPageName - " + Page.Title;
    }
}

答案 1 :(得分:-1)

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

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

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

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

假设&#34;家庭&#34;页面没有标题,只会显示默认值,那些有标题值的页面会在它前面添加。