c# - 是否可以为带有用户控件或母版页的许多页面创建基本事件处理程序?

标签 c# asp.net events user-controls master-pages

我需要为我的页面创建通用操作菜单。所有页面都将实现一些基本功能,即向某个表添加新行、编辑它们、调用过滤器。其中许多页面只需要基本逻辑即可运行此功能。但是有些页面会为菜单中的选项实现自己的逻辑。

我想通过在菜单中使用事件来实现这一点。所以我需要的不是唯一的事件,而是所有页面的一些基本事件处理程序。并且这个处理程序应该以一种可以被覆盖的方式构造。问题是我不知道如何为菜单的所有 future 使用创建处理程序。在某种程度上听起来有点乌托邦。像这样创建架构是真的吗?

我考虑了两种方法:母版页或用户控件。但我真的不知道这是否可能。那你怎么看?

UPD: 对关于基本页面的两个答案都投了赞成票:你们肯定知道自己在说什么。谢谢。抱歉,正确答案只能选择一次。

最佳答案

您真的不应该在页面上不必要地实例化对象,因为这种方法肯定会这样做。

记住这一点,您可以制作一个相关页面继承自的基页,这样您就可以访问所需的方法。

  1. 创建一个 System.Web.UI.Page 类型的类。 (我们将其命名为 MyBasePageClass)
  2. 实现本类所需的常用方法
  3. 在您需要向其公开方法的页面上继承此类。例如,将 Default.aspx 页面类的定义更改为: 公共(public)部分类默认值:MyBasePageClass

在 MyBasePageClass 中创建的方法必须公开才能被 Default.aspx.cs 看到。

关于c# - 是否可以为带有用户控件或母版页的许多页面创建基本事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3476998/

相关文章:

c# - 使用 C# 在多个文件中搜索字符串

c# - 在 Autofac : What is the difference between a Service and a Component? 的上下文中

java - 如何在 java 中为事件监听器模式创建并触发 Consumers<T> 集合

events - powershell 多运行空间事件传递

c# - MassTransit 弄乱了我的字符串数据

c# - C#按位运算符

asp.net - Request.UserHostAddress.ToString() 可以被欺骗吗? asp.net 4.0 - iis 7.5

c# - 为什么HttpContext.AcceptWebSocketRequest函数获取实例会报错?

c# - 将 ASP.NET MVC View 返回为 HTML 文件,以便在电子邮件模板中使用

c# - 在 WinForms UserControl 中取消订阅事件的位置