每次控制器方法结束时调用方法

本文关键字:方法 调用 结束 控制器 | 更新日期: 2023-09-27 18:26:49

我有一个名为NotificationManager的静态类,每次调用控制器方法时,我都希望将ModelErrors存储在NotificationManager中。

但是,在NotificationManager中,我无法访问ModelState,因为它不在实际控制器中。

有没有任何方法可以在控制器方法完成后自动调用一个方法,而不必将其写入每个控制器方法中?

注意:我需要使用视图中的值。

每次控制器方法结束时调用方法

覆盖控制器中的OnActionExecuted。您仍然有ViewData[]

protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
    //Do your stuff
    base.OnActionExecuted(filterContext);
}

您可以创建一个全局ActionFilter并覆盖OnActionExecuted

或者,您可以在视图中放置子动作。

您可以覆盖Controller类中的方法来执行此操作:

http://msdn.microsoft.com/en-us/library/gg416513(v=vs.98).aspx

http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.onactionexecuted(v=vs.98).aspx