2010-12-03 45 views
2

我有一个名为MasterPage.master的主页面,它有一个<fieldset>和一个<legend>标签。例如:ASP.NET如何在母版页上设置文本?

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

感谢

回答

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

这蒙上你的页面的母版页属性为基础class SiteMaster。你也可以直接将它转换到MasterPage类(从你的MasterPage.master),但是如果你打算这样做,那么@ Greg的答案会更好,尽管它们都可以工作。取决于你的要求。设置aspx页面的MasterType属性是一个很好的解决方案,但是如果您正在进行母版页的动态切换或希望更灵活,那么上述解决方案会更好。

+0

我不确定BodyTitle属性是什么,或者它有Text属性,我只是使用OP的示例。我的回答只是为了说明如何从内容页面访问母版页的属性(在本例中是自定义属性BodyTitle)。 – theChrisKent 2010-12-03 15:19:33

1

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

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

您可以在内容页面的顶部加上:

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

这将自动导致你的页面的主属性为您的大师班的类型,所以你可以再访问该属性而不投射。