Asp.net-Mvc

在 MVC 5 操作過濾器中進行非同步呼叫

  • January 19, 2015

問題

我有一個 api GET 方法來檢索站點配置。我正在使用httpClientGetAsync()方法來做到這一點。

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

由於我需要整個站點的此配置,因此我計劃為此使用全域操作過濾器。

如何在 MVC 操作過濾器中呼叫非同步方法?或者這個問題有更好的解決方案嗎?

我已經查看了多個 SO 問題(MVC 4 中的非同步操作過濾器),但我沒有找到令人滿意的解決方案。

無法(可靠地)從 ASP.NET MVC 5 操作篩選器呼叫非同步方法。這已經在 ASP.NET vNext 中得到修復,但是 AFAIK 沒有計劃在 MVC 5 中支持這一點。

如果您絕對必須在動作過濾器中執行此操作,那麼您必須使用同步呼叫(例如,WebClient而不是HttpClient)。

引用自:https://stackoverflow.com/questions/28024286