ASP.net Content Web Forms是否能够访问在其Master Page的Code Behind部分中声明的变量?

Yo *_*mma 3 asp.net master-pages

我有一个主页面控制我的网站的样式.在Code Behind中,有一些实例化的类实例以及变量.这些类验证用户访问权限,然后创建用户对象

我有一些Web内容表单,它们根据用户对象执行指令.到目前为止,似乎在每个Web Content Form上我都必须创建在Master Page上找到的类的新实例.这使我对每个Web内容表单的工作倍增.

无论如何我可以在主页面代码背后实例化的类和对象?

Bra*_*rad 8

将对象(甚至控件)公开Master页面上的公共属性(仅针对控件).然后,在每个aspx页面中,您希望访问这些对象,在顶部添加以下声明:

<%@ MasterType VirtualPath="~/MyMasterPage.master" %>
Run Code Online (Sandbox Code Playgroud)

正如@Kristof指出的那样,只需访问您的属性即可 Master.PropertyName

此外,您可以确定将对象存储在用户中是否有意义Session(如果您使用DB作为会话状态,请不要忘记它们必须是可序列化的).我经常这样做,并通过Page我的所有页面继承的基类中的属性来控制对它们的访问.其实,我有一个基地master,pageusercontrol让我有机会获得同样的性能(对我来说这是CurrentUser)无处不在.

  • 正确.完成后,您可以访问如下属性:Master.Property (2认同)