3

MasterPageのタイトルを上書きしたいです。注: コンテンツ ページからタイトルの一部を設定することについて話しているのではありません。

私は私のマスターページにこれを持っています:

<head id="Head1" runat="server">
    <title>My Site | <% = Page.Title %></title>
</head>

私のコンテンツページでこれと組み合わせて...

<%@ Page Title="Content page title" ... %>

以下をユーザーに配信します。

<title>My Site | Content page title</title>、これは 99.9% の確率で優れています。ただし、MasterPage IE の head で指定された部分が含まれないように、クライアントに配信されるタイトル全体を変更できるようにしたいと考えています。<title>Special content page</title>

プログラムでコンテンツ ページからページ タイトル全体を変更することは可能ですか? MasterPage の構成を変更したり、別の MasterPage を使用したりしたくありません。

EDIT:既存のコンテンツページを変更せずにこれを実装できる必要もあります。申し訳ありませんが、私はこれを明示的に述べていません。理解されるだろうと思っていた

4

4 に答える 4

1

使用している ASP.Net の形式に応じて、2 つの方法があります。

MVC を使用している場合は、ViewBag で「PageTitle」というプロパティを設定し、マスター ページで参照します。

HomeController.cs 内

@ViewBag.PageTitle = 'Overridden Title'

マスター ページで:

<head id="Head1" runat="server">
    <title>My Site | <% = @ViewBag.PageTitle %></title>
</head>

WebForms ベースのアプリケーションを使用している場合は、最初に「ハイブリッド サーバー コントロール」を介して html タイトルを公開することでこれを行うことができます。

マスター ページで、次のように変更します。

<head id="Head1" runat="server">
    <title id="MasterTitle" runat="server"></title>
</head>

次に、子ページで、マスター ページへの型参照を上部に追加します。

<%@ MasterType virtualpath="~/Templates/YourMasterPage.master" %> 

子ページのコード ビハインドでは、アクセスできるようになりました。

Master.MasterTitle.Text = "Overridden Title";
于 2013-03-21T22:11:21.053 に答える
0

マスターページ内

<title>
    <asp:ContentPlaceHolder ID="cphMasterTitle"
     runat="server"/>
</title>

子ページ内

<asp:Content ID="contentChildTitle" ContentPlaceHolderID="cphMasterTitle"
    runat="server">
    <asp:literal ..... etc ... />
</asp:Content>

またはコンテンツ/プレースホルダーを使用せずに

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Me.Title = "Child Title"
End Sub
于 2014-09-30T19:03:47.930 に答える
0

VS2012 では、子ページで WebForms を使用している場合、マスター ページでは何も変更しません。子ページを介してすべてを実行できるようになりました。

次のステートメントは、子ページ コードの一番上にあります。

`<%@ Page Title="Insert Your Title here" Language="C#" MasterPageFile="~/MyMasterPage.Master" AutoEventWireup="true" CodeBehind="SomeChildPage.aspx.cs" Inherits="SomeProject.WebForm1" %>`
于 2013-09-21T08:59:07.153 に答える