C# 重定向到ASP.NET MVC中的异步方法的操作
我有一个C# 重定向到ASP.NET MVC中的异步方法的操作,c#,asp.net-mvc,async-await,C#,Asp.net Mvc,Async Await,我有一个AccountController和一个带有IndexAsync()操作的HomeController 如何正确地从AccountController的AdminUserProfil操作重定向到HomeController的IndexAsync操作 public async Task<ActionResult> AdminUserProfil(AdminUserViewModel viewModel) { // ... if (SomeCondition)
AccountController
和一个带有IndexAsync()
操作的HomeController
如何正确地从AccountController的AdminUserProfil操作重定向到HomeController的IndexAsync操作
public async Task<ActionResult> AdminUserProfil(AdminUserViewModel viewModel)
{
// ...
if (SomeCondition)
{
return this.RedirectToAction<HomeController>(h => h.IndexAsync());
}
// ...
}
公共异步任务您实际上是在执行示例中的操作。您可以使用类似这样的方法重定向到操作,而不是执行它:
返回重定向到操作(name of(Controller.ActionName),
(控制器)的名称。替换(“控制器”、“控制器”);
//或硬编码控制器名称
返回重定向到操作(name of(Controller.ActionName),
“家”);
如果您需要返回任务,也可以
var result=RedirectToAction(…,…);
返回Task.FromResult(结果);
这取决于您。您可以将一个变量设置为应该返回的值,然后在底部返回它,或者您可以在知道能够返回时立即返回。请注意,nameof(Controller)
将返回“HomeController”,但您希望字符串“Home”来实现此功能。最后,返回重定向到操作(nameof(HomeController.IndexAsync),nameof(HomeController));
如果我理解得很好,应该可以完成这项工作是的,但正如@JessedeWit所指出的,nameof(Controller)
还将包含单词控制器
作为字符串的一部分。您可以删除该单词或对控制器字符串进行硬编码。我将更新答案。正确,重定向到操作时不涉及等待。您是否100%确定需要使该操作异步
?它的任何其他部分是否等待inpaArticular?@Mariocach用一个(部分更新的)代码的图像更新了OP,重定向操作
方法来自何处?如果只使用(h=>h.IndexAsync)
(没有调用它的()
),@KirkLarkin重定向操作是一个Mvc控制器扩展(MvcContrib.dll),它能工作吗没有()