I'm trying to work out why Umbraco 7.2.4 just doesn't seem to handle asynchronous tasks in my ASP.NET MVC controller. I feel like I've read almost every possible stack overflow and umbraco q&a, and tried many possible methods to try narrow down the problem. This is both for Umbraco 7 & MVC 4 and & MVC 5. It works just fine in an MVC project without Umbraco.
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>
In the end the browser shows no rendered view, and just the text string:
System.Threading.Tasks.Task`1[System.Web.Mvc.ActionResult]