2015-05-11 41 views
0

我想解决为什么Umbraco 7.2.4似乎不处理我的ASP中的异步任务.NET MVC控制器。我觉得我已经读过几乎所有可能的堆栈溢出和umbraco q,并尝试了很多可能的方法来尝试缩小问题的范围。这是Umbraco 7 & MVC 4和& MVC 5.它在没有Umbraco的MVC项目中工作得很好。异步控制器返回“System.Threading.Tasks.Task`1 [System.Web.Mvc.ActionResult]”

HomeController.cs:

using System.Threading.Tasks; 
using System.Web.Mvc; 
using Umbraco.Web.Models; 
using Umbraco.Web.Mvc; 

namespace Umbraco.Async.Website.Controllers 
{ 
    public class HomeController : RenderMvcController 
    { 
     public new async Task<ActionResult> Index(RenderModel model) 
     { 
      var menuModel = new HomeViewModel(model); 
      await Task.Delay(1000); 
      return View("Home", menuModel); 
     } 
    } 

    public class HomeViewModel : RenderModel 
    { 
     public string Test = "Pizza is awesome!!!!"; 

     public HomeViewModel(RenderModel model) 
      : base(model.Content, model.CurrentCulture) 
     { 

     } 
    } 
} 

Home.cshtml:

@*@inherits Umbraco.Web.Mvc.UmbracoTemplatePage*@ 
@inherits UmbracoViewPage<Umbraco.Async.Website.Controllers.HomeViewModel> 
@{ 
    Layout = null; 
} 

<h1>@Model.Test</h1> 

中端浏览器没有显示渲染视图,只是文本字符串:

系统。 Threading.Tasks.Task`1 [System.Web.Mvc.ActionResult]

+1

看到这个问题在其他地方在这里http://stackoverflow.com/questions/23006976/async-controller-action-with-umbraco-7-returns-string – ProNotion

+0

嗨@ProNotion,谢谢你,我已经试过两个这个问题的解决方案在多个项目(MVC4,MVC5)之前没有运气。我会为他们的问题添加评论。干杯! – legas

+0

....我也尝试过使用SurfaceController(如http://stackoverflow.com/questions/23006976/async-controller-action-with-umbraco-7-returns-string)以及我的RenderMvcController。 (可能有用的额外信息) – legas

回答

0

你在web.config文件中有这个键吗?如果没有,请添加,然后尝试。

<appSettings> 
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> 
    </appSettings> 
+0

我已经添加了它,没有运气:( - 谢谢你的回答! – legas

0

我提出用一把umbraco一个问题,针对这个问题我已经奔这个挣扎了好一阵子。我已经写了an article on a solution here但简而言之,你可以用这个来代替:

public async Task<ActionResult> Home(RenderModel model) 
{ 
    var menuModel = new HomeViewModel(model); 
    await Task.Delay(1000); 
    return View("Home", menuModel); 
} 

的区别在于Home措施优先于失败的指标作用,因为它是从模板名称不是文档类型别名路由。

相关问题