在MVC 5动作过滤器中进行异步调用

时间:2015-01-19 12:06:34

标签: asp.net-mvc async-await

问题

我有一个api GET方法来检索网站配置。我使用httpClientGetAsync()方法来执行此操作。

HttpResponseMessage response = await client.GetAsync("api/{0}/config", id);

由于我需要在整个网站上进行此配置,因此我计划对此使用全局操作过滤器。

问题

如何在MVC动作过滤器中调用异步方法?或者这个问题有更好的解决方案吗?

我已经查看了多个SO问题(Async action filter in MVC 4),但我没有找到满意的解决方案。

1 个答案:

答案 0 :(得分:15)

无法(可靠地)从ASP.NET MVC 5操作过滤器调用异步方法。这已在ASP.NET vNext中修复,但AFAIK没有计划在MVC 5中支持此功能。

如果您绝对必须在操作过滤器中执行此操作,则必须使用同步调用(例如,WebClient而不是HttpClient)。