【发布时间】:2015-12-20 08:55:54
【问题描述】:
我正在开发一个 ASP.Net MVC 4 项目。该项目中的所有控制器都包装在一个自定义控制器中,如下所示:
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);
}
【问题讨论】:
-
“在异步方法中使用异步修饰符”是什么意思?
-
赞这个
public async Task<ActionResult> Index() -
请您提供操作代码示例。确保您使用的是
await。 -
public async Task<ActionResult> Details(string id) { var user = await userService.FindByIdAsync(id); return View(user);} -
@codeWorm,我觉得动作没问题。你确定你没有覆盖
BaseController中的默认执行行为吗? System.Threading.Tasks.Task`1[System.Web.Mvc.ActionResult] 很可能意味着该任务未被等待。
标签: c# asp.net-mvc asynchronous