2011-03-01 6 views
3

내가 만든 양식에 대한 내 웹 사이트에 PRG를 구현하는 데 관심이 있습니다. 현재 그들은 그들 자신에게 다시 게시하고 분명히이 페이지를 새로 고치면 데이터가 중복해서 게시됩니다. 누구든지 내 사이트에 이것을 어떻게 코드화 할 수 있는지에 대한 좋은 지침서의 방향으로 나를 가리킬 수 있습니까? 나는 논리를 이해하지만 정확히 어디에서 시작해야할지 확신하지 못합니다. 감사합니다.Post Redirect in asp.net

답변

6

양식에 다시 게시 한 후에는 다시 게시를 수행하기 만하면됩니다.

DoPostbackProcessing(); 
Response.Redirect("FormConfirmationPage.aspx"); 

아주 간단한 예로, 기본적으로 사용자가 다른 페이지로 리디렉션 (GET)하면 사용자가 다시 게시를 복제 할 수 없습니다. 물론 포럼에 오류가있는 경우 리디렉션하고 싶지는 않을 수도 있지만 이는 개별 요구 사항에 달려 있습니다.

편집 :이의 좋은 예는 리디렉션 및 GET 것 대신에 검색을 다시 게시하고 수행하는 검색입니다 : 이것은 다음 리디렉션

// Instead of performing search now we will redirect to ourselves with the criteria. 
var url = "SearchPage.aspx?criteria=" + txtSearch.Text; 
Response.Redirect(url); 

페이지를 다음 검사를 criteria 질의 문자열과 그러면 검색이 수행되고 사용자가 새로 고침하면 검색이 다시 시작되며 즉석 검색을 위해 페이지를 북마크에 추가 할 수 있습니다.

+0

그런 다음 데이터베이스에 게시 된 원래 양식의 값을 어떻게 참조 할 수 있습니까? 내가 이런 종류의 일을 한 고전적인 ASP에서 나는 request.form ("controlID")을 사용할 것이다. 페이지가 리디렉션 된 후이 작업을 수행 할 수 있습니까? – ajguk

+0

아니, PRG의 아이디어는 URL 쿼리 문자열에 키 값을 배치하는 것입니다. 포스트 백 중에 만 양식 값을 검색 할 수 있으며, GET은 쿼리 문자열을 사용합니다. HTMS. 이것도 확인하십시오 : http : //en.wikipedia.org/wiki/Post/Redirect/Get. – Mantorok

+0

감사합니다. request.querystring ("blahblah")을 사용하여 값을 가져 왔습니다. 관심이 없으면 제한을 초과 한 URL에 여러 값을 삽입하고 싶습니다. 일부 양식은 상당량의 데이터를 전송합니다. – ajguk