C# 具有异步和等待的MVC操作

C# 具有异步和等待的MVC操作,c#,asp.net-mvc,asp.net-mvc-4,async-await,C#,Asp.net Mvc,Asp.net Mvc 4,Async Await,我在MVC3应用程序(VS2012中的空应用程序)中有以下操作,它只加载一个索引页,其中只有一个H2元素。虽然这没有任何作用,但我只是在学习异步和等待功能 索引页未加载。我只是在浏览器里看到这个 System.Threading.Tasks.Task`1[System.Web.Mvc.ActionResult] 同样在fiddler中,我收到了蓝色的请求。我做错了什么。为什么视图没有显示出来 异步调用成功并在网站中显示html内容 查看代码: @{ ViewBag.Title = "In

我在MVC3应用程序(VS2012中的空应用程序)中有以下操作,它只加载一个索引页,其中只有一个H2元素。虽然这没有任何作用,但我只是在学习异步和等待功能

索引页未加载。我只是在浏览器里看到这个

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

同样在fiddler中,我收到了蓝色的请求。我做错了什么。为什么视图没有显示出来

异步调用成功并在网站中显示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;
        }
@{
ViewBag.Title=“Index”;
}
指数
公共异步任务索引()
{
任务getContentsTask=GetContentsAsync();
睡眠(10000);
字符串内容=等待getContentsTask;
返回视图(“索引”);
}
异步任务GetContentsAsync()
{
HttpClient=新的HttpClient();
任务内容=客户端。GetStringAsync(“http://www.msdn.com");
字符串数据=等待内容;
返回数据;
}

MVC3无法识别任务


升级到MVC4。

MVC3无法识别任务


升级到MVC4。

您使用的是什么版本的MVC?问题中提到了MVC4,但我不使用webapi。您确定吗?如果您使用的MVC版本不识别async,则会发生这种情况。@SLaks:非常抱歉,该应用程序是MVC3版本。我创建了一个MVC4,效果很好。非常感谢你>我这方面愚蠢的意外错误。你使用的是什么版本的MVC?问题中提到了MVC4,尽管我不使用webapi。你确定吗?如果您使用的MVC版本不识别async,则会发生这种情况。@SLaks:非常抱歉,该应用程序是MVC3版本。我创建了一个MVC4,效果很好。非常感谢你>我这方面愚蠢的意外错误。