访问子页面上的母版页对象

时间:2013-09-19 17:09:09

标签: c# asp.net master-pages code-behind

我需要访问在我的母版页的代码隐藏中创建的对象。我有一个母版页和十几个子页面,子页面需要访问此对象。主页代码隐藏如下:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Manager"] == null) Response.Redirect("/Login");
        Manager Mng = (Manager)Session["Manager"];
    }

在我的子页面上,我希望能够这样做:

int _ID = Mng.ID

但在这种背景下不存在“Mng”。请指教。感谢。

2 个答案:

答案 0 :(得分:1)

你必须在主人身上添加公共财产,如:

public Manager Mng { get; set; }

使用manager值设置此属性。在任何页面或用户控件中,您都可以执行以下操作:

((SiteMaster)this.Page.Master).Mng

获取参考。请注意,您必须投射网站站长,或创建如下界面:

public interface IMaster
{
   Manager Mng { get; }
}

让您的母版页实现此界面,并将母版投射到类似IMaster的类型:

((IMaster)this.Page.Master).Mng

答案 1 :(得分:0)

Zerkey,

  

使用@MasterType指令时   您可以在主页面上引用成员,如下所示   示例(VB.Net):

     

CompanyName.Text = Master.CompanyName

     

页面的Master属性已经输入MasterPage_master。

看看http://msdn.microsoft.com/en-us/library/c8y19k6h(v=vs.100).aspx 这可能对你有所帮助。