C# 是否可以使用T4MVC和异步操作?

C# 是否可以使用T4MVC和异步操作?,c#,asp.net-mvc,async-await,t4mvc,C#,Asp.net Mvc,Async Await,T4mvc,我的行动: public virtual async Task<ActionResult> IdeaDetails(int id) { 错误:实例参数:无法从“System.Threading.Tasks.Task”转换为“System.Web.Mvc.ActionResult”C:\Work\LuxedCorNew\LuxedCor\LuxedCor\App\u Start\RouteConfig.cs 19 15 LuxedCor 错误2:System.Thr

我的行动:

 public virtual async Task<ActionResult> IdeaDetails(int id)
        {
错误:
实例参数:无法从“System.Threading.Tasks.Task”转换为“System.Web.Mvc.ActionResult”C:\Work\LuxedCorNew\LuxedCor\LuxedCor\App\u Start\RouteConfig.cs 19 15 LuxedCor


错误2:
System.Threading.Tasks.Task'不包含'AddRouteValue'和最佳扩展方法重载'System.Web.Mvc.T4Extensions.AddRouteValue(System.Web.Mvc.ActionResult,string,object)'的定义。AddRouteValue(System.Web.Mvc.ActionResult,string,object)'具有一些无效参数

发生错误的原因是异步的工作方式。您需要等待方法中的任务,以便获得ActionResult,如下所示:

routes.MapRoute("DesignIdeasDetails", "ideadetails/{id}",
          (await MVC.Designer.IdeaDetails()).AddRouteValue("id", UrlParameter.Optional)

// or, if the method cannot be used with async/await
 routes.MapRoute("DesignIdeasDetails", "ideadetails/{id}",
          (MVC.Designer.IdeaDetails().GetAwaiter().GetResult()).AddRouteValue("id", UrlParameter.Optional)
routes.MapRoute("DesignIdeasDetails", "ideadetails/{id}",
          (await MVC.Designer.IdeaDetails()).AddRouteValue("id", UrlParameter.Optional)

// or, if the method cannot be used with async/await
 routes.MapRoute("DesignIdeasDetails", "ideadetails/{id}",
          (MVC.Designer.IdeaDetails().GetAwaiter().GetResult()).AddRouteValue("id", UrlParameter.Optional)