Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.net内容Web表单是否能够访问它的代码隐藏部分中声明的变量';s母版页?_Asp.net_Master Pages - Fatal编程技术网

ASP.net内容Web表单是否能够访问它的代码隐藏部分中声明的变量';s母版页?

ASP.net内容Web表单是否能够访问它的代码隐藏部分中声明的变量';s母版页?,asp.net,master-pages,Asp.net,Master Pages,我有一个母版页控制我的网站的样式。在代码隐藏中,有几个实例化的类实例和变量。这些类验证用户访问,然后创建用户对象 我有一些基于用户对象执行指令的Web内容表单。到目前为止,似乎在每个Web内容表单上,我都必须创建母版页上的类的新实例。对于每一个Web内容表单,这是我工作的两倍 我是否可以在母版页代码隐藏中保存实例化的类和对象?在母版页上将对象(甚至控件)公开为公共属性(仅获取控件)。然后,在要访问这些对象的每个aspx页面的顶部添加以下声明: <%@ MasterType VirtualP

我有一个母版页控制我的网站的样式。在代码隐藏中,有几个实例化的类实例和变量。这些类验证用户访问,然后创建用户对象

我有一些基于用户对象执行指令的Web内容表单。到目前为止,似乎在每个Web内容表单上,我都必须创建母版页上的类的新实例。对于每一个Web内容表单,这是我工作的两倍

我是否可以在母版页代码隐藏中保存实例化的类和对象?

母版页上将对象(甚至控件)公开为公共属性(仅获取控件)。然后,在要访问这些对象的每个
aspx
页面的顶部添加以下声明:

<%@ MasterType VirtualPath="~/MyMasterPage.master" %>

正如@Kristof所指出的,只需访问您的属性,如
Master.PropertyName


此外,您还可以确定将对象存储在用户
会话中是否有意义(如果使用DB作为会话状态,请不要忘记它们必须是可序列化的)。我经常这样做,并通过所有页面继承自的基本
Page
类中的属性来控制对它们的访问。实际上,我有一个基本的
主控
页面
,和
用户控件
,所以我可以访问所有地方的相同属性(对我来说,它是
当前用户
)。

如果你公开这些属性,我相信你可以。 然后在您的子页面中,您可以进行如下呼叫:

SiteMaster master = (SiteMaster)this.Master;
master.MyProperty = 0;
其中
SiteMaster
是母版页的类。(
SiteMaster
是应用程序模板的默认设置)


虽然我的思想可以欺骗我,但我已经有一段时间没有这么做了……

如果你像Brad的回答那样设置Mastertype指令,你不需要施放。我现在知道了:p但是我们同时写了答案,我不知道这个方法。正确。完成此操作后,您可以访问如下属性:Master.Property