0

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

    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”在这种情况下并不存在。请指教。谢谢。

4

2 回答 2

1

您必须在 master 上添加一个公共属性,例如:

public Manager Mng { get; set; }

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

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

获得参考。请注意,您必须强制转换站点管理员,或创建如下界面:

public interface IMaster
{
   Manager Mng { get; }
}

让您的母版页实现此接口,并将母版转换为 IMaster 类型,如下所示:

((IMaster)this.Page.Master).Mng
于 2013-09-19T17:23:07.490 回答
0

泽基,

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

CompanyName.Text = Master.CompanyName

页面的 Master 属性已键入 MasterPage_master。

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

于 2013-09-19T17:25:33.933 回答