母版页生成第二个标题标签

时间:2010-01-05 12:44:41

标签: asp.net master-pages title

我在母版页内有一个简单的页面(好吧,在母版的母版中)。

在顶级母版中,我有head标记runat="server",有许多位,如脚本,样式表等,还有contentplaceholder。这里没有标题标签。

在使用此主文件的页面中,占位符的内容包含 <title>pagename</title>位。我真的必须把它放在那里。

不幸的是,当页面被渲染时,我得到了我的标题,这一切都很好,但也获得了第二个空白标题标签 - 我认为它被.NET抛弃了。

有没有办法阻止第二个标题标签出现?

3 个答案:

答案 0 :(得分:17)

从内存中,如果没有一个<head>,则<title> .Net上的runat =“server”会自动添加<head runat="server"> Blah <title runat="server" visible="false"></title> </head>

我认为(尚未测试过)是否在您的母版页中

{{1}}

在母版页的Head中明确设置Title标签,并将可见性设置为false。我想。

答案 1 :(得分:4)

您不必手动将<title>插入头部 只需按代码设置Page.Title = "title",或按标记设置<%@ Page Title="My Title" .. %>。 ASP.NET将弄清楚其余的,并把正确的标题。

答案 2 :(得分:1)

我认为使用:

如果您想在页面级别设置标题

<%@ Master ... %>
<html>
<head runat="server">
  <title>
    <asp:ContentPlaceHolder ID="titleContent" runat="server" />
  </title>
</head>

或者,

如果要在母版页级别设置动态标题。

<%@ Master ... %>
<html>
<head runat="server">
  <title>
    <asp:Literal ID="litPageTitle" runat="server"></asp:Literal>
  </title>
</head>

是确保不生成空的第二个标题标记的更好方法。