IEnumerable<Post>
비동기를 사용하여 데이터베이스에서 검색하려는 부분보기가 있습니다 .
방법
public static class PostService
{
public static int PostsPerPage = 50;
public static async Task<IEnumerable<Post>> GetRecentAsync(int page = 0)
{
return await entityFrameworkDbContext.Posts
.ToListAsync();
}
}
PartialView
public async Task<ActionResult> Recent(int page = 0)
{
return PartialView(await PostService.GetRecentAsync(page));
}
그리고 내가 부르려고하면
@Html.Action("Recent", "Post")
다음 예외가 발생합니다.
비동기 작업이 완료 될 때까지 기다리는 동안 HttpServerUtility.Execute가 차단되었습니다.
설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 오류가 발생한 위치에 대한 자세한 내용은 스택 추적을 검토하십시오.
예외 정보 : System.InvalidOperationException : 비동기 작업이 완료 될 때까지 기다리는 동안 HttpServerUtility.Execute가 차단되었습니다.
이 오류가 발생하는 이유는 무엇입니까? 작동하지 않습니까?
답변
자식 작업은 동 기적으로 호출되어야합니다. 문제 601 또한이 기능을 허용하는 현재 MVC 라이브러리에 대한 최근 업데이트를 알지 못합니다.
문제 601에 대한 의견은이 기능이 MVC vNext (일명)에 추가되고 있음을 암시합니다. MVC6. 하위 작업 ViewComponent
은 아래와 같이 뷰에서 비동기 적으로 호출 될 수 있는 대체되는 것으로 보입니다 . 여기 와 여기에 전체 예
<div>
@await Component.InvokeAsync("YourComponent")
</div>
MVC6에 대한 자세한 내용은 http://www.asp.net/vnext/overview/aspnet-vnext/overview를 확인 하십시오.
참고 :이 답변은 형식적이므로 질문을 답변으로 표시 할 수 있습니다.