2011-03-10 4 views
1

일부 매개 변수를 전달하면서 한 컨트롤러에서 다른 컨트롤러로 리디렉션을 수행하려고합니다. 불행히도 매개 변수의 값은 길고 불쾌한 GET 쿼리 문자열을 찾고 있습니다. 어쨌든 리디렉션에서 대신 POST를 사용하여 더 멋진 URL을 얻을 수 있습니까?GET 대신 POST를 통해 RedirectToRoute를 사용할 수 있습니까?

감사합니다.

답변

3

모두가 말했듯이 게시하려면 리디렉션 할 수 없습니다.

그러나 경로 대신 TempData에 값을 고정하여 못생긴 URL을 피할 수 있습니다.

0

죄송합니다. POST을 통한 리디렉션은 HTTP spec에서 지원되지 않습니다. 일반적인 유형의 리디렉션 (301 - Permanent302 - Temporary)을 구현하는 대부분의 고객은 GET 요청을 새 위치에 보냅니다.

0

"리디렉션"은 GET입니다. 당신이하고있는 일이 브라우저에 또 다른 URL로 가도록 지시하는 것입니다. 브라우저는 새로운 URL에 다른 http 호출 (GET 사용)을합니다. url은 매개 변수를 포함 할 수 있지만 항상 POST가 아닌 GET이어야합니다.

세션에서 일부 데이터를 저장 한 다음 두 번째 (리디렉션 된) 요청이 들어 오면 세션에서이 값에 액세스 할 수 있습니다.

2

당신은 적절한 POST 리디렉션을 수행 할 수 없습니다,하지만 당신은 POST 리디렉션 모방 브라우저에서 자바 스크립트를 사용할 수 있습니다

<form id="myform" action="http://mywebsite.com/"> 
    <input name="myparameter" value="12345" type="hidden" /> 
</form> 
<script> 
    document.getElementById("myform").submit() 
</script> 

그것은 진정한 리디렉션이 아니에요을하고 그것이뿐만 아니라 수행하지 않습니다 리디렉션하지만이 방법이 효과가 있습니다.

+0

내가 리디렉션하는 두 대의 컨트롤러가 다른 웹 응용 프로그램에 있기 때문에 허용 된 솔루션을 사용할 수 없습니다. 아마 JavaScript로 자동 제출되는 양식을 제공하는이 솔루션을 사용해야 할 것입니다. –

관련 문제