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
.
HttpContext.Request.QueryString["404"]
..