For*_*tus 32 c# asp.net-mvc actionfilterattribute async-await
我有一个动作过滤器,当在某些特定条件下使用时,必须执行Web服务调用以确保当前状态有效.这最初似乎是异步/等待的理想候选者,但我遇到了一个问题:
假设请求:/ Test/FilteredAction
传统上我希望动作过滤器在控制器动作开始执行之前恢复执行然后完成,但这不会发生.
现在我假设这是因为我正在使用:
public class MyCustomActionFilter : ActionFilterAttribute
{
public override **async** void OnActionExecuting(FilterContext context)
{
var foo = await WebServiceCall();
}
}
Run Code Online (Sandbox Code Playgroud)
所以我认为我的问题是:MVC 4中是否有一个异步感知的动作过滤器类,或者我应该阻止这里的调用?
Ste*_*ary 40
MVC没有async兼容的动作过滤器(但WebAPI确实有一个).
目前,我建议您使用阻止呼叫OnActionExecuting.希望MVC将来会有更好的故事.
更新:您可以在这里投票给MVC团队添加async过滤器.