ASP.在控制器中的RedirectToAction中添加查询字符串值

本文关键字:查询 字符串 添加 控制器 ASP RedirectToAction | 更新日期: 2023-09-27 18:17:11

我有一个ASP。我的应用程序是使用T4MVC。在我的控制器中,我需要从一个操作重定向到另一个操作。当我这样做时,我想附加一个查询字符串值。我可以在没有查询字符串值的情况下成功地重定向,但是我没有成功地应用查询字符串值。我的动作看起来像这样:

[HttpPost]
[ValidateAntiForgeryToken]
public virtual ActionResult Action1()
{                        
   return RedirectToAction(MVC.MyController.Action2().AddRouteValue("id", "5"));
}
[Route("action-2")]
public virtual ActionResult Action2(string input)
{
  ViewBag.Input = input;
  return View(viewModel);
}

访问./action-2时,Action2工作正常。我也可以成功POST到Action1。但是,当重定向不起作用时。我注意到地址栏中有如下内容:

/MyController/id

为什么?我该如何解决这个问题?我只是想重定向回到Action2,但这次添加了一个查询字符串参数。我错过了什么?

ASP.在控制器中的RedirectToAction中添加查询字符串值

您需要在操作中指定参数的名称(在本例中为" input "),以便使其工作,见下面:

return redirectToAction(MVC.MyController.Action2().AddRouteValue("input", "5"));

或者:

return RedirectToAction("Action2", "MyController", new { input = "myInput"});

我尝试了以下方法,它对我来说很好。

return RedirectToAction("Index", "CustomBuilder", new { usern = "admin" });