我们最近遇到了BaseController中ExecuteCore()
不再被调用的问题。曾在MVC 3中工作但不在MVC 4中工作
所以,我将属性protected override bool DisableAsyncSupport
添加到BaseController,如下所示:
protected override bool DisableAsyncSupport
{
get { return true; }
}
现在明显的问题是当我们得到异步动作时该怎么办? 如何检测控制器操作是否是同步VS异步?
我需要这样的东西,我想:
protected override bool DisableAsyncSupport
{
get
{
if(actionIsSynchronous)
return true;
else
return false
}
}
感谢您的帮助!
答案 0 :(得分:0)
您可以尝试使用 BeginExecuteCore
,而不是使用 ExecuteCoreprotected override IAsyncResult BeginExecuteCore(AsyncCallback callback, object state)
{
return base.BeginExecuteCore(callback, state);
}
另一种解决方案可能是覆盖初始化方法。
protected override void Initialize(RequestContext requestContext)
{
//Put your code here
}