首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向控制器中的RedirectToAction添加查询字符串值

向控制器中的RedirectToAction添加查询字符串值
EN

Stack Overflow用户
提问于 2016-11-09 22:29:58
回答 2查看 10.8K关注 0票数 2

我有一个ASP.NET MVC应用程序。我的应用程序正在使用T4MVC。在我的控制器中,我需要从一个动作重定向到另一个动作。当我这样做时,我想要附加一个查询字符串值。我可以在没有查询字符串值的情况下成功重定向,但应用查询字符串值失败。我的操作如下所示:

代码语言:javascript
运行
复制
[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工作正常。我也可以成功地发布到Action1上。但是,当重定向不起作用时。我在地址栏中注意到以下内容:

代码语言:javascript
运行
复制
/MyController/id

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-09 22:39:08

您需要在操作中通过名称指定参数(在本例中为"input"),才能使其工作,请参见下面的内容:

代码语言:javascript
运行
复制
return redirectToAction(MVC.MyController.Action2().AddRouteValue("input", "5"));

或者:

代码语言:javascript
运行
复制
return RedirectToAction("Action2", "MyController", new { input = "myInput"});
票数 5
EN

Stack Overflow用户

发布于 2018-02-16 20:42:36

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

代码语言:javascript
运行
复制
return RedirectToAction("Index", "CustomBuilder", new { usern = "admin" });
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40509369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档