页面调用其母版页的属性和公共方法

时间:2013-07-24 21:07:33

标签: asp.net oop object properties master-pages

主页中有一些数据,如标题,标题等。我想根据使用母版页的每个页面设置这些数据。

为此,我创建了一些属性,如public string title {get; set;},并在masterpages的PageLoad()中设置默认值。

但是,我如何访问这些属性?据我所知,masterpage是一个为每个页面加载实例化的类,所以我需要找到它的对象来调用它的属性。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

Page.Master指的是当前页面的MasterPage。您可以将其强制转换为相关类型并以此方式访问属性。在母版页中:

<%@ Master Language="C#" ClassName="MasterExample" %>

<script runat="server">
    public string SiteName
    {
        get { return "My Site Name"; }
    }
</script>

然后,在页面中:

protected void Page_Load(object sender, EventArgs e)
{
  MasterExample m = (MasterExample)Page.Master;
  mylabel.Text = m.SiteName;
}

请参阅http://msdn.microsoft.com/en-us/library/system.web.ui.masterpage(v=vs.110).aspx的底部。

答案 1 :(得分:1)

你应该把这段代码放在设计视图中(在html中)

<%@ MasterType VirtualPath="~/NameOfMasterPage.Master" %>

下的

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
    CodeBehind="default.aspx.cs" Inherits="MOCKUPPROJECT._Default" EnableEventValidation="false" %>

现在你可以改变它的属性

Master.MasterContentHolderPage="some values"