从母版页代码后面的子页面获取信息
本文关键字:获取 信息 代码 母版页 | 更新日期: 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.asax
的Session_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。但是,您确实需要从母版页访问这些信息,这表明它应该是母版页的属性,这更容易从子页面引用。