2010-01-05 39 views
6

我有一個簡單的頁面內的母版頁(以及在母版的主人)。母版頁生成第二個標題標籤

在頂級高手中,我有head標記runat="server",有很多位,如腳本,樣式表等,也是一個contentplaceholder。這裏沒有標題標籤。

在使用此主人的頁面中,佔位符的內容包含 <title>pagename</title>位。我真的必須把它放在那裏。

不幸的是,當頁面呈現時,我得到了我的標題,這是很好的,但也得到第二個空白標題標籤 - 我認爲在那裏被傾倒在那裏。

有什麼辦法阻止第二個標題標籤出來?

回答

16

從內存中,通過將012at.Net上的runat =「server」放在自動添加<title>(如果沒有的話)。

我認爲(沒有測試過)如果是在你的母版,你做

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

明確設置標題標籤的母版的頭部和設置能見度爲false作品。我認爲。

+0

狡猾,沒有嘗試,雖然我懷疑它會工作。 結束了在頂尖高手加入爲標題一個單獨的ContentPlaceHolder <佔位符這裏 ... 正常工作 感謝無論如何 – nat 2010-01-05 13:31:06

+0

我剛剛有同樣的問題,並試圖此修復程序。我可以證實它確實有效。做得好。 – draconis 2010-12-12 21:42:10

+0

從ehad標籤中刪除runat =「server」似乎也適用。 – Ondra 2013-11-03 20:45:21

4

您不必手動將<title>插入頭部。
只需按代碼設置Page.Title = "title",或按標記設置<%@ Page Title="My Title" .. %>。 ASP.NET會找出其餘的,並把正確的標題。

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> 

是確保不會生成空的第二個標題標記的更好方法。