2015-05-11 79 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措施優先於失敗的指標作用,因爲它是從模板名稱不是文檔類型別名路由。

相關問題