2010-05-28 4 views
1

포스트 백을 처리하는 컨트롤러에서 페이지 새로 고침/F5 키 누름을 감지하는 방법은 무엇입니까? 사용자가 두 개의 버튼 (예 : 다음, 이전) 중 하나를 누르고 F5/페이지 새로 고침이 발생할 때를 구분해야합니다.ASP.NET MVC 2에서 페이지 새로 고침/F5 키 감지

내 시나리오는 "다음"또는 "이전"단추를 누를 때마다 사용자가 호출 할 때마다 다른 내용이 표시된 단일 마법사 페이지입니다. 내가 실행중인 오류는 사용자가 페이지를 새로 고치거나 F5 키를 누르면 브라우저가 포스트 백으로 처리되는 컨트롤러에 다시 요청을 보내고 FormCollection 유형이 컨트롤러를 다시 찾는 데 사용됩니다. "submitButton"키를 누르고 값을 가져옵니다 (예 : "다음", "보내기"). 이 부분은 Dylan Beattie가 작성한 How do you handle multiple submit buttons in ASP.NET MVC Framework?의 게시물을 모델로 작성되었습니다.

은 어쩌면 내가 그것을 이동하는 것은 아닙니다 곳으로 MVC 2를 구부리려고하지만 기본 데이터베이스가 표시되는 내용의 내용과 순서를 구동 점에서 현재의 디자인으로 유지하고 싶습니다. 이를 통해 우리는 컨텐츠를 표시하는 코드를 수정하지 않고 데이터베이스에 새로운 컨텐츠를 추가 할 수 있습니다.

감사합니다, 마이클

답변

4

권장되는 방법이 PRG 패턴을 사용하는 것입니다 - 포스트 - 리디렉션이-가져옵니다. 의미 : 제출 한 후 클라이언트를 Index 또는 무엇으로 리디렉션하여 사용자가 F5를 누르면 인덱스를 다시로드하고 데이터를 다시 게시하지 않습니다.

확인이 : http://en.wikipedia.org/wiki/Post/Redirect/Get

그리고이 : http://www.google.sk/search?q=prg+mvc+asp.net

+1

이 ... 그것을 다른 방법을 넣어 컨트롤러의 조치를 한 것으로는보기 결과 대신 RedirectToAction 결과를 반환합니다. – AaronSieb

+0

두 번째 링크가 제공됨에 따라 다음과 같은 http://www.eworldui.net/blog/post/2008/05/ASPNET-MVC---Using-Post2c-Redirect2c-Get-Pattern.aspx를 발견했습니다. PRG 디자인 패턴을 구현합니다. 나는이 확실히 내가 갈 필요가있는 방향을 보여주고, 그래서 내가 내 조정을 할 필요가 어디에서 볼 수 있습니다 전에이 건너했지만이 예제를 통해 자신을 걷고 난 후에 ASP.NET MVC 2의 컨텍스트 내에서 그것을 적용되지 않았을 . 신속한 회신과 의견을 보내 주셔서 감사합니다! – Michael

+0

View ("PageName", model) 인스턴스를 반환 할 때 AaronSieb에게 감사드립니다. 추가 FYI와 마찬가지로, 처음에는 디자인에 "검토"라는 두 가지 방법이 있었는데 하나는 GET이고 다른 하나는 POST입니다. POST "검토"메소드에서 어떤 제출 버튼 (예 : "다음"또는 "이전")을 캡처하고 "다음"및 "이전"이라는 두 가지 헬퍼 메소드 중 하나에서 새 ActionResult를 반환하려고했습니다. 이러한 각 헬퍼 메소드는 사용자가 취한 방향 (예 : 마법사에서 앞이나 뒤로)에 따라 콘텐츠를 반환합니다. 감사! – Michael

관련 문제