相关疑难解决方法(0)

MVC 4中的异步操作过滤器

我有一个动作过滤器,当在某些特定条件下使用时,必须执行Web服务调用以确保当前状态有效.这最初似乎是异步/等待的理想候选者,但我遇到了一个问题:

假设请求:/ Test/FilteredAction

  • MyCustomActionFilter开始执行
    • 达到了第一个"等待"声明
  • TestController.FilteredAction开始执行
  • MyCustomActionFilter继续执行

传统上我希望动作过滤器在控制器动作开始执行之前恢复执行然后完成,但这不会发生.

现在我假设这是因为我正在使用:

public class MyCustomActionFilter : ActionFilterAttribute 
{
    public override **async** void OnActionExecuting(FilterContext context) 
    {
        var foo = await WebServiceCall();
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我认为我的问题是:MVC 4中是否有一个异步感知的动作过滤器类,或者我应该阻止这里的调用?

c# asp.net-mvc actionfilterattribute async-await

32
推荐指数
1
解决办法
1万
查看次数