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/