天天看點

ASP.NET MVC 5 局部視圖不支援異步問題

[ChildActionOnly]
        public async Task<ActionResult> TopLeftFlowPartialView()
        {
            var user = Session[Constants.SESSION] as UserSessionViewModel;
            var hotelInventory = await _homeService.GetHotelInventoryAsync(user.HotelCd);
            return PartialView("_TopLeftFlowPartialView", hotelInventory.Data);
        }      

頁面

@Html.Action("TopLeftNazhPartialView", "Home")      

運作程式有時會抛出如下異常:

異常詳細資訊: System.InvalidOperationException: HttpServerUtility.Execute 在等待異步操作完成時被阻止。

“System.Web.HttpException”類型的異常在 System.Web.dll 中發生,但未在使用者代碼中進行處理

其他資訊: 執行處理程式“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper”的子請求時出錯。

google 一番,居然 MVC5  不支援局部視圖的異步,得在MVC6 也就是現在的 ASP.NET CORE 1.0 後才支援。

又不想把異步改成同步方法,是以隻能改成 AJAX 來做了

$('#xx').load('@Url.Action("TopLeftFlowPartialView","Home")');      

REFER:

http://stackoverflow.com/questions/24072720/async-partialview-causes-httpserverutility-execute-blocked-exception

http://www.cnblogs.com/dunitian/p/5481138.html

https://q.cnblogs.com/q/81685/