class MyBaseController : AsyncController
{
// ...
}
class SimpleController : MyBaseController
{
public ActionResult MySyncAction()
{
}
}
我总是必须做一件事, OperationX()。这是 ALL 我的请求的长期操作。它的价值因许多事情而有所不同,但这是一个技术细节。
我想以ASync方式执行此操作,然后以常规方式调用控制器的操作方法。我们在SimpleController世界中有大量代码,我们有数百个控制器和路由等,因此不能将所有这些代码转换为ASync。
因此问题是,如何拦截进入MyBaseController的MySyncAction的动作,然后调用MyBaseController的Async动作 ALWAYS ,然后仅在完成时调用basecontroller中的async动作,是吗?然后调用SimplerController的MySyncAction。
这是可能的,最好的方法是什么?
答案 0 :(得分:0)
如果您只想在BaseController之后调用SimpleController的MySyncAction,那么不能使用FilterAttribute来完成吗?
以下是执行某些日志记录的自定义过滤器属性的示例... http://www.asp.net/mvc/tutorials/understanding-action-filters-cs
[MyFilterAttribute]
class SimpleController : AsyncController
{
public ActionResult MySyncAction()
{
}
}