ASP.NET如何在母版页上设置文本?

时间:2010-12-03 15:11:06

标签: c# asp.net c#-4.0

我有一个名为MasterPage.master的母版页,其中<fieldset>标记为<legend>。像这样:

<fieldset id="NewTrade" runat="server">
    <legend runat="server" class="legend"><%= this.BodyTitle %></legend>
    <asp:ContentPlaceHolder id="contentMain" runat="server" />       
</fieldset>

masterpage.master文件从SiteMaster.cs继承SiteMaster。 SiteMaster有一个名为BodyTitle的公共字段。我想在正常页面加载时设置BodyTitle,但我不知道该怎么做。基本上我想要做的就是有一个围绕我的主内容的图例,然后在页面加载时为每个页面设置图例文本。最好的方法是什么?

所以,在Default.aspx中,我想在Page_Load中做这样的事情:

BodyTitle.Text = "Home"

由于

3 个答案:

答案 0 :(得分:2)

(this.Master as SiteMaster).BodyTitle.Text = "Home";

这会将您的Page的Master页面属性强制转换为基类SiteMaster。您也可以将它直接转换为MasterPage类(来自您的MasterPage.master),但如果您打算这样做,那么@ Greg的答案会更好,尽管它们都可以。只是取决于您的要求。设置aspx页面的MasterType属性是一个很好的解决方案,但如果您正在进行主页的动态切换或希望更灵活,那么上述解决方案将更适合。

答案 1 :(得分:1)

您将使用Master对象的Page属性,并将其强制转换为SiteMaster类。

((SiteMaster)this.Master).BodyTitle = "Home";

答案 2 :(得分:1)

您可以将其放在内容页面的顶部:

<%@ MasterType VirtualPath="~/masterpage.master" %>

这会自动导致页面的Master属性属于您的主类的类型,因此您可以在不进行转换的情况下访问该属性。