Reputation: 2197
I have a simple page inside a master page (well, in a master in a master).
In the top master I have the head
tag with runat="server"
, with a number of bits such as scripts, stylesheets, etc. and also a contentplaceholder. There is no title tag here.
In the page that uses this master, the content for the placeholder contains the
<title>pagename</title>
bit in it. I really have to set it in there.
Unfortunately when the page is rendered I get my title which is all good, but also get a second blank title tag - I presume dumped in there by .NET.
Is there any way of stopping this second title tag coming out?
Upvotes: 7
Views: 3029
Reputation: 16144
I think using:
If you want to set title at page level
<%@ Master ... %>
<html>
<head runat="server">
<title>
<asp:ContentPlaceHolder ID="titleContent" runat="server" />
</title>
</head>
Or,
If you want to set dynamic title at Master Page level.
<%@ Master ... %>
<html>
<head runat="server">
<title>
<asp:Literal ID="litPageTitle" runat="server"></asp:Literal>
</title>
</head>
is better way to make sure that empty second title tag is not generated.
Upvotes: 1
Reputation: 4177
From memory, by virtue of putting the runat="server" on the <head>
.Net automagically adds a <title>
if there isn't one already.
I think (haven't tested it) is if in your masterpage you do
<head runat="server">
Blah
<title runat="server" visible="false"></title>
</head>
setting the Title tag explicitly in the Head of the masterpage and setting visibility to false works. I think.
Upvotes: 17
Reputation: 138017
You don't have to manually insert <title>
to the head.
Just set Page.Title = "title"
by code, or <%@ Page Title="My Title" .. %>
by markup.
ASP.NET will figure out the rest, and put the right title.
Upvotes: 4