【问题标题】:master page generating a second title tag生成第二个标题标签的母版页
【发布时间】:2010-01-05 12:44:40
【问题描述】:

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

在顶级大师中,我有 headrunat="server" 的标签,带有许多位,例如脚本、样式表等,还有一个内容占位符。这里没有标题标签。

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

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

有什么方法可以阻止第二个标题标签的出现吗?

【问题讨论】:

    标签: asp.net master-pages title


    【解决方案1】:

    根据记忆,通过将 runat="server" 放在 <head> 上,.Net 会自动添加 <title>(如果还没有 <title>)。

    我认为(尚未测试)是如果在您的母版页中您这样做

    <head runat="server">
    Blah
    <title runat="server" visible="false"></title>
    </head>
    

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

    【讨论】:

    • 狡猾,没有尝试过,尽管我怀疑它会起作用。最终为顶级主 <placeholder here> 中的标题添加了一个单独的 contentplaceholder ...无论如何都可以正常工作</placeholder>
    • 我刚刚遇到了同样的问题并尝试了这个修复。我可以确认它确实有效。干得好。
    【解决方案2】:

    您不必手动将&lt;title&gt; 插入头部。
    只需通过代码设置Page.Title = "title",或通过标记设置&lt;%@ Page Title="My Title" .. %&gt;。 ASP.NET 将找出其余部分,并给出正确的标题。

    【讨论】:

      【解决方案3】:

      我认为使用:

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

      <%@ 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>
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-27
        相关资源
        最近更新 更多