how to add querystring values with RedirectToAction method?

前端 未结 4 1222
野的像风
野的像风 2020-12-03 00:28

In asp.net mvc, I am using this code:

RedirectToAction(\"myActionName\");

I want to pass some values via the querystring, how do I do that?

相关标签:
4条回答
  • 2020-12-03 00:50

    For people like me who were looking to add the CURRENT querystring values to the RedirectToAction, this is the solution:

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

    The solution as you can see is to use the RouteValueDictionary object

    0 讨论(0)
  • 2020-12-03 01:01

    Any values that are passed that aren't part of the route will be used as querystring parameters:

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

    Would return:

    /controller/myActionName?value1=queryStringValue1
    

    Assuming there's no route parameter named "value1".

    0 讨论(0)
  • 2020-12-03 01:01

    Also consider using T4MVC, which has the extension methods AddRouteValue() and AddRouteValues() (as seen on this question on setting query string in redirecttoaction).

    0 讨论(0)
  • 2020-12-03 01:07

    Do not make the same mistake I was making. I was handling 404 errors and wanted to redirect with 404=filename in the querystring, i.e. mysite.com?404=nonExistentFile.txt.

    QueryString Keys cannot begin with numbers. Changing from 404 to FileNotFound solved my issue, i.e. mysite.com?FileNotFound=nonExistentFile.txt.

    0 讨论(0)
提交回复
热议问题