1

这似乎是一个愚蠢的问题,但我使用的是 VS 2010,并且在 Site.Master 页面中,有一个标签<h1> 允许用户输入标题标题。

例如在此处输入图像描述

在这种情况下,标题是“ASP.NET 应用程序”

我想在我的应用程序的每一页都有不同的标题。

如何更新每个 .aspx 页面中的标题?在页面的 HeaderContent 部分?

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">

</asp:Content>
4

4 回答 4

2

您想要做的与模板的意图不同。该模板的构造使内容<h1>成为您的站点徽标或站点名称。这就是为什么他们将其硬编码为Site.Masteras:

<div class="title">
    <h1>
        My ASP.NET Application
    </h1>
</div>

它并不是要每页更改。

如果您想每页更改它,那么您有几个选择。这是一个

由于您引用了站点管理员的标题部分:假设您希望将标题文本设置为实际页面标题。你可以这样做:

<div class="title">
    <h1>
        <asp:Label ID="_pageTitle" runat="server"></asp:Label>
    </h1>
</div>

所以你My ASP.NET Application用一个标签替换,这样你就可以在后面的代码中轻松地更改它。

然后,在你后面的代码中,你有类似的东西:

protected void Page_Load(object sender, EventArgs e)
{
    _pageTitle.Text = Page.Title;
    //rest of your  code
}

这会将标签的文本设置为页面的页面标题。

于 2013-04-10T03:50:19.700 回答
2

在 Site.Master 页面中,更改以下块

<h1>
     My ASP.NET Application
 </h1>

<h1><%= Page.Title%></h1>

然后,在每个内容页面中,在 page 指令中设置页面标题:

<%@ Page Title="Home Page" Language="vb" MasterPageFile="~/Site.Master" AutoEventWireup="false"
CodeBehind="Default.aspx.vb" Inherits="WebApplicationTest._Default" %>
  • 注意Title="Home Page"属性。

或从代码隐藏:

Page.Title = "Home Page"
于 2013-04-10T03:56:49.880 回答
1

您需要做的就是更新母版页中的标题,然后使用该母版页的每个网页都会自动更新标题

于 2013-04-10T02:37:13.923 回答
0

如果希望将一些文本从每个 .aspx 页面传递到母版页,请尝试以下操作。我有类似的情况,我将其解决为:

在母版页上放置一个label控件。ID="lblOnMasterPage"

<asp:Label ID="lblOnMasterPage" runat="server"></asp:Label>

在母版页的代码隐藏文件上创建一个公共属性

        public string LabelValue
        {
            get { return this.lblOnMasterPage.Text; }
            set { this.lblOnMasterPage.Text = value; }
        }

并使用以下代码为应用程序的每个页面传递您想要的标题/文本..

((yourMasterPage)this.Master).LabelValue = "text you want to pass from each page";
于 2017-02-06T20:09:49.787 回答