删除具有 ASP.NET 身份 3.x 的用户的操作方法

Action method to delete a user with ASP.NET Identity 3.x

这是我删除用户的操作方法: 我觉得它正在阻塞,因为我正在使用 user.Result 将实际用户对象从一个异步结果传递到下一个异步方法。有更好的方法吗?

// POST: Users/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
    var user = _userManager.FindByIdAsync(id.ToString());
    var result = await _userManager.DeleteAsync(user.Result);
    return RedirectToAction("Index");
}

你是对的。使用 user.Result 传递实际对象会阻塞异步方法。

使用 async 的最佳做法是在整个方法中一直使用 await不要混用阻塞代码和异步代码

// POST: Users/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id) {
    var user = await _userManager.FindByIdAsync(id.ToString());
    var result = await _userManager.DeleteAsync(user);
    return RedirectToAction("Index");
}

来源 - Async/Await - Best Practices in Asynchronous Programming