[c#] RedirectToAction 메서드로 쿼리 문자열 값을 추가하는 방법은 무엇입니까?

asp.net mvc에서 다음 코드를 사용하고 있습니다.

RedirectToAction("myActionName");

쿼리 문자열을 통해 일부 값을 전달하고 싶습니다. 어떻게해야합니까?



답변

경로의 일부가 아닌 전달 된 모든 값은 쿼리 문자열 매개 변수로 사용됩니다.

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

반환 할 것 :

/controller/myActionName?value1=queryStringValue1

“value1″이라는 경로 매개 변수가 없다고 가정합니다.


답변

또한 확장 메서드 및 ( redirecttoaction에서 쿼리 문자열 설정 에 대한이 질문에서 볼 수 있듯이) T4MVC 사용을 고려하십시오 .AddRouteValue()AddRouteValues()


답변

RedirectToAction에 CURRENT 쿼리 문자열 값을 추가하려는 저와 같은 사람들에게는 이것이 해결책입니다.

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

보시 다시피 해결책은 RouteValueDictionary 객체 를 사용하는 것입니다.


답변

내가했던 것과 같은 실수를하지 마십시오. 404 오류를 처리 404=filename하고 쿼리 문자열에서 리디렉션하고 싶었습니다 mysite.com?404=nonExistentFile.txt.

QueryString 키는 숫자로 시작할 수 없습니다. 에서 404로 변경 FileNotFound하여 내 문제 를 해결했습니다 mysite.com?FileNotFound=nonExistentFile.txt.


답변