基地分级同步控制器为异步控制器隐藏复杂
问题描述:
class MyBaseController : AsyncController
{
// ...
}
class SimpleController : MyBaseController
{
public ActionResult MySyncAction()
{
}
}
我总是必须做一两件事,OperationX()。这是ALL我的要求的长期操作。它的价值观基于很多东西而不同,但这是一个技术细节。基地分级同步控制器为异步控制器隐藏复杂
我想以异步方式做到这一点,然后以常规方式调用控制器的操作方法。我们在SimpleController世界中有大量的代码,并且我们有数百个控制器和路由等,所以它不会将所有代码转换为ASync。
的quesiton,因此,做我怎么拦截来MyBaseController的MySyncAction一个动作,然后调用MyBaseController的异步操作ALWAYS,然后只在完成后,在basecontroller异步操作的,做我然后调用MySyncAction SimplerController。
这是可能的,最好的方法是什么?
答
如果您只想在BaseController之后调用SimpleController的MySyncAction,那么使用FilterAttribute代替它可以做到这一点吗?
这里是做一些记录自定义过滤器属性的例子... http://www.asp.net/mvc/tutorials/understanding-action-filters-cs
[MyFilterAttribute]
class SimpleController : AsyncController
{
public ActionResult MySyncAction()
{
}
}
我想我不能完全按照你的问题。你想在主要行动之前执行一些操作还是并行执行?如果它是一个“长期运营”,我想在主要行动之前运行是没有意义的,对吧?我认为在这种情况下,HttpHandler可能是您的一个选择,您是否考虑过? – bonifaz 2011-03-27 16:34:58
之前的主要行动。主要行动是快速的,先前的行动是长期的行动。 – 2011-03-28 01:34:22