如何更改每个页眉?

时间:2013-04-10 02:32:25

标签: asp.net visual-studio-2010 site.master

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

E.g。 enter image description here

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

我希望在我的应用程序的每个页面中都有不同的标题。

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

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

</asp:Content>

4 个答案:

答案 0 :(得分:2)

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

<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
}

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

答案 1 :(得分:2)

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

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

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

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

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

或者来自代码隐藏:

Page.Title = "Home Page"

答案 2 :(得分:1)

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

答案 3 :(得分: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";