C# 重定向到当前页面的最佳实践

C# 重定向到当前页面的最佳实践,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我在控制器中有一个方法可以更改用户的角色。完成后,我尝试在Controller中的方法完成后将用户保持在当前URL中。我目前正在通过发送return Redirect/Profile/Index/+id;,这是我从中执行此方法的页面 这很好,但我想知道这是否是最佳实践,或者是否有一种方法可以简单地将用户保持在页面内 Index.cshtml 简单地返回视图;将返回相同的当前页面。最好使用更适合此类场景的内置方法: return RedirectToAction(null, new { id })

我在控制器中有一个方法可以更改用户的角色。完成后,我尝试在Controller中的方法完成后将用户保持在当前URL中。我目前正在通过发送return Redirect/Profile/Index/+id;,这是我从中执行此方法的页面

这很好,但我想知道这是否是最佳实践,或者是否有一种方法可以简单地将用户保持在页面内

Index.cshtml


简单地返回视图;将返回相同的当前页面。

最好使用更适合此类场景的内置方法:

return RedirectToAction(null, new { id });
通过仅传递新的RouteValue,当前操作和控制器将自动保留


请参见

您看到了吗:Post redirect get是一种解决方法,它可以防止在用户刷新结果页面时出现难看且令人困惑的确认表单重新提交问题。有关更多信息,请参阅。不,它发送到Promotion,但它不存在。谢谢,我不知道RedirectToAction允许传递RouteValue。
[HttpPost]
public IActionResult Promote(string id)
{
   var user = _nemesysRepository.GetUserById(id);
   _userManager.RemoveFromRolesAsync(user, _userManager.GetRolesAsync(_nemesysRepository.GetUserById(id)).Result).Wait();
   _userManager.AddToRoleAsync(user, "Investigator");
   return Redirect("/Profile/Index/" + id); //===NEEDS TO REDIRECT TO BACK===
}
return RedirectToAction(null, new { id });