.net - 変更 - ページタイトルを設定できない
titleタグ 位置 (6)
私の奇妙な問題は、私のASP.NETページのTitle
プロパティを設定すると、コードレベルでは何の効果もありません。 どちらも例外をスローしません。 私のクラスはPage
クラスの派生クラスですが、タイトルについては何も上書きしていません。
私はこの行を持っているコード:
Title = "About";
デバッグ中に、私はその行にいるので、私はTitleの上にカーソルを普通のものとして置いて、空の文字列を表示します""
私はその行を降ろして、 "About"
明らかに"About"
Title
が"About"
私が動かすと、まだ空の文字列が得られます。 プロパティ設定が機能しません。 そして、はい、出力ページでも空です。 まあ、私はそこに何かを逃していますか?
C#コードからタイトルを設定する場合は、aspxページでタイトルを設定しないでください。 (空白のタイトルでもC#コードのタイトルが上書きされます)
次のコードは、C#コードのタイトルセットを空の文字列で上書きします。
<%@ Page Language="C#" Title="" ... %>
C#コードで設定できるようにするには、 Title
プロパティを削除する必要があります。
<%@ Page Language="C#" ... %>
PreRenderでのみ動作します
protected void Page_PreRender(object sender, EventArgs e)
{
Page.Title = "Some title";
}
これについて(奇妙だが、それでも:) :)
ステップ1: マスターページのタイトルタグにContentPlaceHolderを追加する
...
<title>
<asp:ContentPlaceHolder ID="TitleContentPlaceHolder" runat="server"></asp:ContentPlaceHolder>
</title>
...
ステップ2: 次をコンテンツページに追加する
...
<asp:Content ContentPlaceHolderID="TitleContentPlaceHolder" runat="server" ID="TitleContent">
<asp:Literal runat="server" ID="TitleLabel"></asp:Literal>
</asp:Content>
...
ステップ3: タイトルを設定してみてください(例:ページの読み込み時)
protected void Page_Load(object sender, EventArgs e)
{
...
TitleLabel.Text = "Some title";
...
}
ページの後にタイトルを設定してみてください。DataBind:
public override void DataBind()
{
base.DataBind(true);
Title = "Ballout";
}
私も同様の問題がありました(コードビハインドのMe.Title
プロパティを設定しても、レンダリングされたページの実際のタイトルは変更されません)。
<%@ Page %>
ディレクティブからTitle属性を完全に削除したら、すべてが期待通りに機能し始めました。
私はマスターページ<head>
これを持っています:
<title><%= Page.Title %></title>
ASP.NETは<head>
<title>
要素を追加するので、このビットは厳密には必要ではないようですが、Visual Studio HTMLバリデーターは、「要素のタイトルがあまりにも少ない回数しか表示されません」私はそれをそこに残す。)
- Visual Studio 2010 Pro
- .NET 4.0
- IIS 7.0
<%@ Master ..
<head runat="server">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><%: Page.Title %></title>
..
<%@ Page Title="ABOUT" ..