Asp.net mvc MVC4“;不能等待”;

Asp.net mvc MVC4“;不能等待”;,asp.net-mvc,asynchronous,asp.net-mvc-4,Asp.net Mvc,Asynchronous,Asp.net Mvc 4,下面的代码片段导致了一个我很难理解的编译错误 错误1无法等待System.Collections.Generic.List“” 有什么建议吗 public class NewsController : Controller { public async Task<ActionResult> Index(int page=1) { NewsNavigator News = new NewsNavigator(); await News.L

下面的代码片段导致了一个我很难理解的编译错误

错误1无法等待System.Collections.Generic.List“”

有什么建议吗

public class NewsController : Controller
{
    public async Task<ActionResult> Index(int page=1)
    {
        NewsNavigator News = new NewsNavigator();
        await News.Load(page);
        ...

        return View(News);
    }
}



    public List<News> Load(int page = DefaultPage, int pageSize = DefaultPageSize, string filter = DefaultFilter)
    {
        //DBLayer_News
        ...
        return LoadedNews;
    }
公共类新闻控制器:控制器
{
公共异步任务索引(int page=1)
{
NewsNavigator News=新的NewsNavigator();
等待消息。加载(第页);
...
返回视图(新闻);
}
}
公共列表加载(int page=DefaultPage,int pageSize=DefaultPageSize,string filter=DefaultFilter)
{
//DBU新闻
...
返回加载的新闻;
}

Await应用于返回任务的方法调用的结果

你不能称之为新闻,因为新闻不是一项任务。创建一个任务并将News.Load方法传递给它

NewsNavigator News = new NewsNavigator();
var newsLoadTask = Task.Factory.StartNew(() => News.Load(page));
await newsLoadTask;
...

有更简单的语法吗?在C#5.0和mvc4hmm中,我不确定。。。您可以将NewsNavigator类设置为静态并去掉第一行?您可以始终使用
wait Task.Run(()=>News.Load(page))此外,请确保任何使用者都包含返回类型的dll。Visual Studio 2012在未包含dll时给出了一条毫无帮助的错误消息“Cannot wait”(无法等待)。静态对象有一个坏习惯,即在框架的其余部分(本例中为asp.net)准备就绪之前就准备就绪。请看一下依赖项注入。