使用异步和等待的MVC操作

ckv*_*ckv 1 c# asp.net-mvc async-await asp.net-mvc-4

我在MVC3应用程序(VS2012中的空应用程序)中有以下操作,它只加载一个只包含一个H2元素的Index页面.虽然这没有做任何事情,但我只是学习异步和等待功能.

索引页面未加载.我只是在浏览器中得到这个.

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

同样在小提琴手我得到了蓝色的请求.我做错了什么.为什么视图没有显示出来.

异步调用确实成功并显示网站中的html内容.

查看代码:

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>


public async Task<ActionResult> Index()
        {
            Task<string> getContentsTask = GetContentsAsync();
            Thread.Sleep(10000);
            string contents = await getContentsTask;
            return View("Index");
        }

        async Task<string> GetContentsAsync()
        {

            HttpClient client = new HttpClient();
            Task<string> contents = client.GetStringAsync("http://www.msdn.com");

            string data = await contents;
            return data;
        }
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 5

MVC3无法识别Tasks.

升级到MVC4.