我有一个AccountController
和一个HomeController
,并且有一个IndexAsync()
动作
如何正确地从AccountController
的 AdminUserProfil 操作重定向到HomeController
的 IndexAsync 操作?
public async Task<ActionResult> AdminUserProfil(AdminUserViewModel viewModel)
{
// ...
if (SomeCondition)
{
return this.RedirectToAction<HomeController>(h => h.IndexAsync());
}
// ...
}
如果我按原样使用它,则会收到警告:
CS4014 由于未等待此调用,因此将执行当前 方法在调用完成之前继续。考虑应用 'await'运算符以调用结果。
答案 0 :(得分:2)
您实际上是在示例中执行操作。您可以使用类似这样的方法来重定向到该操作,而不是执行该操作:
return RedirectToAction(nameof(Controller.ActionName),
nameof(Controller).Replace("Controller", ""));
// or hardcode controller name
return RedirectToAction(nameof(Controller.ActionName),
"Home");
如果您需要返回任务,也可以
var result = RedirectToAction(..., ...);
return Task.FromResult(result);