2010-08-17 4 views
0

T4MVC를 사용하여 다른 동작으로 리디렉션하려고 할 때 RedirectToAction (MVC.MyController.MyAction());을 반환합니다. 결과로 get 요청을하고 있습니다.MVC 2.0 동작으로 리디렉션하지 않고 동작으로 게시

컨트롤러에서 게시물 요청을 할 수있는 방법이 있습니까? 나는 모든 것을 똑같이 지키고 싶지만 단지 대신에 게시물을 만드십시오. 나는 그것에 대한 어떤 방법을 찾을 수 없습니다. 여기에 하나의 게시물 헬퍼를 발견 http://geekswithblogs.net/rakker/archive/2006/04/21/76044.aspx하지만 난이 헬퍼를 사용하여 필요한 모든 값을 전달할 수 없습니다. TempData를 통해 값을 전달하려고했지만이 도우미를 사용할 때 오지 않을 것입니다. 어떤 아이디어가있을 수 있습니까?

사용자가 한 컨트롤러에서 다른 컨트롤러로 이동 한 다음 사용자가 업데이트를 클릭하거나 브라우저 주소 표시 줄에 입력을 클릭하면 페이지가 중단되므로이 작업을 수행하려는 이유.

그 이유로 세션을 사용해야합니까?

답변

0

게시물을 만드는 유일한 방법은 양식을 가지고 제출 단추 또는 자바 스크립트로 해당 양식에 제출하는 것입니다. 해당 작업에 전달하려는 정보는 해당 양식에 있어야하며 게시 된 모든 항목을 찾아야합니다. FormCollection (나는 그것을 바르게 철자하길 바란다).

1

RedirectToAction은 항상 POST를 수행하지 않고 GET을 수행합니다 (HTTP 302를 브라우저에 반환하고 GET 요청을 보냅니다).

리디렉션에서 데이터를 유지하려면 문자열로 쉽게 표현하고 쿼리 문자열에 저장할 수있는 데이터 인 경우 리디렉션의 경로 값에 추가하면됩니다. 예 :

return RedirectToAction("Search", new { searchString = "whatever" }); 

복잡한 유형 인 경우 TempData에 저장해야합니다. StackOverflow에 대한 다른 많은 질문 (예 : this)은 방법에 대한 세부 정보를 제공합니다.

응용 프로그램에서 TempData를 반복적으로 저장하고 읽는 것이 코드 감각에 불쾌감을주는 경우 PassParametersDuringRedirect 특성과 MvcContrib project에서 사용할 수있는 일반 RedirectToAction을 사용하여 캡슐화 할 수 있습니다. 이 기술에 대한 세부 정보는 here입니다.

관련 문제