从母版页代码后面的子页面获取信息

本文关键字:获取 信息 代码 母版页 | 更新日期: 2023-09-27 18:15:52

在我的网站上,我有一组5个用户设置页面。它们都使用一个名为settings.master的母版页。在隐藏代码中,页面的类定义如下:

public partial class AccountSettings : PageEx

母版页的类定义如下:

public partial class Settings : System.Web.UI.MasterPage

PageEx有一个对象叫做LoggedInUserInfo。在OnInit期间,使用关于登录用户的所有信息填充此目录。

我想从母版页访问对象LoggedInUserInfo。因此,在母版页上,我想引用子页拥有的对象。这可能吗?

从母版页代码后面的子页面获取信息

当然

master 中的

(Page as PageEx).LoggedInUserInfo.Somefunction();

LoggedInUserInfo听起来像是应该在会话状态中的东西。也许您可以从母版页的会话状态中检索它。

您可以将填充对象的代码放在Global.asaxSession_Start事件中。这样,每个登录的用户只调用一次。

对于每个在给定母版页范围内呈现的页面,已经生成了单个ContentPlaceHolder类型的字段。(见MasterPage.designer.cs)。通过访问ContentPlaceHolder。页属性并转换为基础页类型,您将能够访问所需的内容:

// MainContent - name of your content place holder for a specific page rendered
// in scope of Master page
(this.MainContent.Page as PageEx).LoggedInUserInfo

是有可能的。

你只需要把LoggedInUserInfo放到MasterPage (HttpContext)可以访问的地方。物品,HttpContext。但是,您确实需要从母版页访问这些信息,这表明它应该是母版页的属性,这更容易从子页面引用。