나는 Form.aspx 페이지가 있습니다. Post-Back에서 복잡한 유효성 검사가 발생합니다. 오류가 발견 된 경우 :이전 페이지로 포스트
lblErrors.Text = "There are Errors"
페이지에 나열된 오류를 모두 해결하고 제출을 누르십시오. 사후 돌아 가기 유효성 검사 오류를 발견하지 않았기 때문에 : Confirm.aspx에
lblErrors.Text = ""
Response.Redirect("Confirm.aspx")
를, 제출 된 데이터를 검토 할 수 있습니다. 나는 "편집으로 돌아 가기"버튼을 가지고 있습니다.
버튼을 클릭하면 뭔가를 편집하고 무엇을 편집 할 수 있습니까? ... lblErrors.Text는 "오류가 있습니다"라고 표시합니다. 나는 Go Back 기능이 캐쉬 된 페이지를 가져 오는 것을 깨달았지만 Form Post-Back 동안 Text를 바꾼 이후로 돌아올 때 비어있을 것이라고 기대했다. 그렇지 않았습니다.
간단히 말해 사용자가 전의 viewstate 영광으로 이전 페이지를 포스트 백 할 수 있기를 바랍니다. 그 시점에서 Page_Load에서 lblErrors를 처리 할 것입니다.
많은 필드가 있으며, 그 중 대부분이 이전 선택에 종속 된 웹 서비스 데이터 소스 드롭 다운입니다. 세션 변수로 재실행하고 확인하도록 빨아 들일 것입니다. 따라서 모든 필드의 값을 변수에 저장하고 정기적 인 리디렉션을 수행하는 것은 내가 원하는 바가 아닙니다. 나는 내가 깨닫지 못하는 PreviousPage에 대해 뭔가를 기대하고있다.
대부분의 경우 Confirm.aspx 페이지에 오류를 게시하고 다른 페이지에서 오류가 포함 된 요청 변수를 읽어야합니다. 또 다른 옵션은 서버에 제출하기 전에 양식 클라이언트 측의 유효성을 검증하는 것입니다.이 경우 서버 측 유효성 검사도 수행해야합니다. 클라이언트 쪽 유효성 검사에만 의존하지 마십시오. –
카메론에 감사드립니다. 나는 계속 진행하여 두려운 클라이언트 측 검증을 설정했다. 내가 실제로 한 것은 코드를 추가하는 것이 었습니다. 따라서 사용자가 오류가있는 필드를 변경하면 오류 텍스트가 사라집니다. 물론 간단하고 작동하지만 Confirm.aspx에 여전히 제출 한 다음 돌아가서 페이지가 마지막으로로드 된 방식이므로 오류 텍스트가 표시됩니다 (클라이언트 측 JS가 "stick"하지 않습니다. 페이지의 캐시와 함께). 나는 여전히 이전 (양식) 페이지로 포스트 백하는 방법이 필요하다고 생각합니다. – Suamere
다른 옵션이없는 경우 오류를 확인 페이지로 옮깁니다. 그것은 폼 클래스에서 폼 객체를 제어하는 것과 같이 깔끔한 또는 프로 우스 (실제 단어, look up)처럼 거의 들리지 않습니다. 왜 페이지 캐싱을 사용할 수없는 경우 페이지가 다시로드되지 않는지 이해할 수 없습니다. No-Cache가 꺼져 있어도 ASP.Net 문제는 아니며 ASP.Net의 옵션이 아닙니다. Back이 눌러 졌을 때 페이지를 다시 요청하도록 브라우저가 개발되지 않았기 때문입니다. 그것이 내가 ASP.Net에 이전 페이지에 다시 게시 할 수있는 (아마도 PreviousPage 또는 그 밖의 유사한 항목에서) 알지 못했던 것이 있기를 바란 이유입니다. – Suamere