如何使用RedirectToAction方法添加查询字符串值?

时间:2009-07-01 03:52:24

标签: c# asp.net-mvc url-redirection

在asp.net mvc中,我使用的是这段代码:

RedirectToAction("myActionName");

我想通过查询字符串传递一些值,我该怎么做?

4 个答案:

答案 0 :(得分:135)

任何不属于路径的传递值都将用作查询字符串参数:

return this.RedirectToAction
  ("myActionName", new { value1 = "queryStringValue1" });

会回来:

/controller/myActionName?value1=queryStringValue1

假设没有名为“value1”的路由参数。

答案 1 :(得分:4)

另请考虑使用T4MVC,其扩展方法为AddRouteValue()AddRouteValues()(如setting query string in redirecttoaction上的此问题所示)。

答案 2 :(得分:4)

对于像我这样希望将CURRENT查询字符串值添加到RedirectToAction的人,这是解决方案:

var routeValuesDictionary = new RouteValueDictionary();
Request.QueryString.AllKeys.ForEach(key => routeValuesDictionary.Add(key, Request.QueryString[key]));
routeValuesDictionary.Add("AnotherFixedParm", "true");
RedirectToAction("ActionName", "Controller", routeValuesDictionary);

您看到的解决方案是使用RouteValueDictionary对象

答案 3 :(得分:1)

不要犯同样的错误。我正在处理404错误,并希望在查询字符串中使用404=filename重定向,即mysite.com?404=nonExistentFile.txt

QueryString键不能以数字开头。从404更改为FileNotFound解决了我的问题,即mysite.com?FileNotFound=nonExistentFile.txt