这似乎是一个愚蠢的问题,但我使用的是VS 2010,在Site.Master页面中,有一个标签<h1>
,允许用户输入标题标题。
E.g。
在这种情况下,标题是“ASP.NET应用程序”
我希望在我的应用程序的每个页面中都有不同的标题。
如何在每个.aspx页面中更新标题?在页面的HeaderContent部分?
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
答案 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" %>
或者来自代码隐藏:
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";