Asp.net-Mvc
在 MVC 5 操作過濾器中進行非同步呼叫
問題
我有一個 api GET 方法來檢索站點配置。我正在使用
httpClient和GetAsync()方法來做到這一點。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)。