Мне нужно установить заголовок страницы динамически, и поэтому я использую код, подобный следующему:Повторяющиеся теги заголовков с использованием ASP.NET MasterPage
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="~/about.aspx.cs" Inherits="Default" %>
<%@ Register Assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ajaxToolkit" %>
<%@ MasterType VirtualPath="MasterPage.master" %>
<%@ OutputCache Duration="43200" VaryByParam="*" Location="Server" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<title><%=pageTitle%></title>
</asp:Content>
Но это создает повторяющиеся теги заголовков. Есть ли способ обойти это? Благодарю.
EDIT: Исходя из приведенных ниже предложений, теперь у меня есть следующие в моем MasterPage:
<head id="Head1" runat="server">
<title>Default Title</title>
...
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
и следующее в моей основной странице:
this.Title="xxx";
, но я не получаю какой-либо title (ни «Заголовок по умолчанию», ни «xxx»).
EDIT: Nevermind. Получил это, используя этот метод.
Куда это должно быть? Я попытался поместить его в Page_Load, и это не сработает. Благодарю. РЕДАКТИРОВАТЬ: Просто увидел ваше редактирование. На главной странице теперь у меня есть Master.pageTitle = "xxx"; и в MasterPage у меня есть страница. Title = pageTitle, но это не работает. – alpheus
Это страница Page_Load страницы MASTER.Если для каждой страницы требуется другое название, вам нужно будет вызвать функцию, определенную в объекте главной страницы. Для этого есть отдельный трюк, но его просто бухгалтерия, поэтому дайте мне знать, если вам нужна помощь. –
Я думаю, что я неправильно понял вашу проблему. Я думал, что вы хотите установить его на уровне главной страницы, но динамически. Это тривиальная проблема при установке на уровне страницы, но вы не делаете этого в HTML, потому что главная страница должна иметь только теги
. Вместо этого вы делаете это в Page_Load. –