.net - 変更 - ページタイトルを設定できない




titleタグ 位置 (6)

C#コードからタイトルを設定する場合は、aspxページでタイトルを設定しないでください。 (空白のタイトルでもC#コードのタイトルが上書きされます)

次のコードは、C#コードのタイトルセットを空の文字列で上書きします。

<%@ Page Language="C#" Title="" ... %>

C#コードで設定できるようにするには、 Titleプロパティを削除する必要があります。

<%@ Page Language="C#" ... %>

私の奇妙な問題は、私のASP.NETページのTitleプロパティを設定すると、コードレベルでは何の効果もありません。 どちらも例外をスローしません。 私のクラスはPageクラスの派生クラスですが、タイトルについては何も上書きしていません。

私はこの行を持っているコード:

Title = "About";

デバッグ中に、私はその行にいるので、私はTitleの上にカーソルを普通のものとして置いて、空の文字列を表示します""私はその行を降ろして、 "About"明らかに"About" Title"About"私が動かすと、まだ空の文字列が得られます。 プロパティ設定が機能しません。 そして、はい、出力ページでも空です。 まあ、私はそこに何かを逃していますか?


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" ..




page-title