ASP.net Content Web 表单是否能够访问在其母版页的代码隐藏部分中声明的变量?

发布于 2024-10-05 14:10:40 字数 201 浏览 2 评论 0原文

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

我有一些 Web 内容表单,它们根据用户对象执行指令。到目前为止,我似乎必须在每个 Web 内容表单上创建母版页上找到的类的新实例。这使我对每个 Web 内容表单的工作量增加了一倍。

无论如何,我可以继承母版页代码隐藏中实例化的类和对象吗?

I have a Master Page which controls the styling of my site. In the Code Behind, there are a few class instances instantiated as well as variables. These classes validate user access and then create user objects

I have a few Web Content Forms which carries out instructions based on the user objects. So far it seems that on each Web Content Form I have to create new instances of the classes found on the Master Page. This is doubling my work for every Web Content Form.

Is there anyway I can inhereit Classes and objects instantiated in the Master Page Code Behind?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

美男兮 2024-10-12 14:10:40

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

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

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

另外,您可以确定将对象存储在用户 Session 中是否有意义(不要忘记,如果您使用数据库作为会话状态,它们必须是可序列化的)。我经常这样做,并通过所有页面继承自的基本 Page 类中的属性来控制对它们的访问。实际上,我有一个基本的 masterpageusercontrol 所以我可以访问相同的属性(对我来说它是 CurrentUser< /code>) 无处不在。

Expose the objects (and even controls) as public properties (get only for controls) on the Master page. Then, in each aspx page you want access to these objects, add the following declaration at the top:

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

As @Kristof points out, simply access your properties like Master.PropertyName

Also, you can determine if it makes sense to store the objects in the users Session (don't forget that they must be serializable if you use DB for session state). I do this often and control access to them via properties in a base Page class that all my pages inherit from. Actually, I have a base master, page, and usercontrol so I have access to the same properties (for me it's CurrentUser) everywhere.

落花随流水 2024-10-12 14:10:40

我相信如果你公开这些财产就可以。
然后在您的子页面中,您可以进行如下调用:

SiteMaster master = (SiteMaster)this.Master;
master.MyProperty = 0;

其中 SiteMaster 是您的母版页的类。 (SiteMaster 是应用程序模板的默认设置)

虽然我的思想会欺骗我,但我已经有一段时间没有这样做了......

I believe you can if you make the properties public.
Then in your child-page you can make the call something like this:

SiteMaster master = (SiteMaster)this.Master;
master.MyProperty = 0;

Where SiteMaster is the class for your master page. (SiteMaster is the default for the app templates)

Though my mind can deceive me, I haven't done it for a while...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文