[英]Wrapped ASP.NET MVC Controller does not support Async action method
我正在開發一個ASP.Net MVC 4項目,該項目中的所有Controllers都包裝到一個自定義控制器中,如下所示:
public abstract class BaseController : Controller{
protected override void OnActionExecuted(ActionExecutedContext filterContext){
}
protected override IActionInvoker CreateActionInvoker(){
return new WebControllerActionInvoker();
}
}
一切都好。 但是,當我想在異步操作方法中使用異步修飾符時,操作方法無法正常工作,並在視圖中返回此消息
System.Threading.Tasks.Task`1 [System.Web.Mvc.ActionResult]
現在我該怎么做才能解決此問題?
編輯:動作方法示例
public async Task<ActionResult> Details(string id) {
var user = await userService.FindByIdAsync(id);
return View(user);
}
您應該從AsyncController
派生使其工作:
與其從Controller派生控制器,不如從AsyncController派生它。 從AsyncController派生的控制器使ASP.NET能夠處理異步請求,並且它們仍可以為同步操作方法提供服務。
默認情況下, Controller
無法處理異步操作。
編輯:
由於上述方法適用於.NET 4,並且似乎已棄用,因此您可以在此處找到另一種方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.