我有一个操作筛选器,当在某些特定条件下使用时,必须执行Web服务调用以确保当前状态有效。最初似乎这是异步/等待的理想选择,但我遇到了困难:
假设请求地址为:/Test/FilteredAction
- MyCustomActionFilter 开始执行
- 到达第一个“await”语句
- TestController.FilteredAction 开始执行
- MyCustomActionFilter 恢复执行
传统上,我希望操作筛选器在控制器操作开始执行之前恢复执行并完成,但这并没有发生。
现在我假设这是因为我正在使用:
public class MyCustomActionFilter : ActionFilterAttribute
{
public override **async** void OnActionExecuting(FilterContext context)
{
var foo = await WebServiceCall();
}
}
所以我想问的是:MVC 4中是否有内置的异步感知的ActionFilter类,或者我应该只是在此处阻塞调用?