我希望能够对每个将数据填充到 ViewData 的请求执行一些代码。目前,我有一个基本控制器类,我的所有控制器都继承自该类,并且我重写 OnActionExecuting 并在那里执行它。
我对这种方法唯一关心的是,创建新控制器的人必须继承基类。
有没有一种方法可以在 global.asax 中注册某些内容,就像使用自定义模型绑定程序一样,每个请求都会运行?有点像全局动作过滤器之类的。
您可以使用一个而不是使用基本控制器类(我认为这是大多数情况下的最佳选择)自定义操作调用程序 http://lostintangent.com/2008/07/03/aspnet-mvc-controlleractioninvoker-part-1/。我将从内置的操作调用程序中派生并添加您需要的额外内容。您可以在应用程序启动期间在 global.asax 中注册操作调用程序,它可以覆盖 OnActionExecuting / OnActionExecuted / OnResultExecuting / OnResultExecuted。例如,您可以使用 OnResultExecuting 添加一些 ViewData。此时您将知道操作已完成,并且还知道 ActionResult 的类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)