是的,ASP.NET 控制器类内部或被控制器调用的类可以触发事件。可以使用事件委托和事件处理程序来实现。
以下是一个示例代码:
public class HomeController : Controller
{
public event EventHandler MyEvent;
public ActionResult Index()
{
// 触发事件
MyEvent?.Invoke(this, EventArgs.Empty);
return View();
}
}
public class MyService
{
public void DoSomething()
{
HomeController homeController = new HomeController();
homeController.MyEvent += HomeController_MyEvent;
homeController.Index();
}
private void HomeController_MyEvent(object sender, EventArgs e)
{
// 处理事件
}
}
在上面的代码中,HomeController
类定义了一个名为 MyEvent
的事件,Index
方法中触发了这个事件。MyService
类中的 DoSomething
方法创建了一个 HomeController
的实例,订阅了 MyEvent
事件,并调用了 Index
方法,从而触发了事件。当事件触发时,会调用 MyService
类中的 HomeController_MyEvent
方法来处理事件。
下一篇:ASP.NET控制器名称作为变量