C# 从任务中检索T<;T>;

C# 从任务中检索T<;T>;,c#,asynchronous,parse-platform,asp.net-mvc-5,async-await,C#,Asynchronous,Parse Platform,Asp.net Mvc 5,Async Await,我正在基于Parse.com框架开发ASP.NET MVC5应用程序 由于我不能使用Parse-login方法,所以我不得不使用此处发布的方法来克服其局限性: 这是我的登录方法(只是一些小改动): 所以现在它可能会抛出一个错误(无法从任务返回t),我不知道如何解决这个问题,所以我可以获取当前登录的用户数据。 我的网站上有导航栏,显示用户名和姓氏,所以每次显示页面时,我都必须以某种方式获取当前登录的用户数据。有什么解决方法/更简单的方法来实现这一点吗?您可以通过使您的操作异步化来解决这一问题: p

我正在基于Parse.com框架开发ASP.NET MVC5应用程序

由于我不能使用Parse-login方法,所以我不得不使用此处发布的方法来克服其局限性:

这是我的登录方法(只是一些小改动):

所以现在它可能会抛出一个错误(无法从任务返回t),我不知道如何解决这个问题,所以我可以获取当前登录的用户数据。


我的网站上有导航栏,显示用户名和姓氏,所以每次显示页面时,我都必须以某种方式获取当前登录的用户数据。有什么解决方法/更简单的方法来实现这一点吗?

您可以通过使您的操作异步化来解决这一问题:

public async Task<ActionResult> Index()
{
    UserData model = new UserData();
    return View(await model.GetUserData());
}
公共异步任务索引()
{
UserData模型=新的UserData();
返回视图(wait model.GetUserData());
}
异步“一路走”。这意味着,一旦您有了一个需要等待的异步方法,它通常会导致大部分(如果不是全部)堆栈跟踪也是异步的

旁注:


Once应该遵守.NET约定,并用后缀标记异步方法,因此您的方法实际上应该命名为
GetUserDataAsync

,您还可以通过使操作异步来解决此问题:

public async Task<ActionResult> Index()
{
    UserData model = new UserData();
    return View(await model.GetUserData());
}
公共异步任务索引()
{
UserData模型=新的UserData();
返回视图(wait model.GetUserData());
}
异步“一路走”。这意味着,一旦您有了一个需要等待的异步方法,它通常会导致大部分(如果不是全部)堆栈跟踪也是异步的

旁注:

Once应该遵守.NET约定,并使用
XXXAsync
postfix标记异步方法,所以您的方法实际上应该命名为
GetUserDataAsync

public ActionResult Index()
{
    UserData model = new UserData();
    return View(model.GetUserData());
}
public async Task<ActionResult> Index()
{
    UserData model = new UserData();
    return View(await model.GetUserData());
}