2011-03-25 2 views
4

최근에 내 (라우팅) 프로젝트 중 하나를 사용할 수 있는지 웹 양식을 해킹했습니다. 지금까지 문제는 아니지만, 나는 그것이 작동한다는 점에 거의 다가 가고있다.Request.HttpMethod가 "POST"인데도 IsPostback = false입니까?

나는 "Test.aspx"라는 페이지를 만들었다. Global.asax에서 /Test.aspx 대신 /test에 게재되도록 만들었습니다. 이것은 완전히 작동합니다. 그것은 내 사용자 정의 페이지 클래스에서 파생됩니다. 맞춤 클래스는 페이지에서 HtmlForm을 찾고 액션 속성을 적절한 값인 /test으로 다시 작성합니다.

이제 Viewstate 및 ASP.Net 이벤트라는 멋진 벽돌 벽을 맞았습니다. OnClick 처리기로 Test.aspx에 단추를 추가했습니다. 단추를 클릭하면 페이지가 다시 게시되지만 OnClick 이벤트가 발생하지 않습니다. 나는 Viewstate가 그런 것을 추적 할 것이라는 인상을받지 않았기 때문에 간단한 URL 변경이 어떻게 viewstate를 깨뜨릴 수 있는지 이해하지 못합니다. 또한 HttpMethod == true 인 경우에도 IsPostback은 false입니다. 이것은 나에게 어떤 의미가되지 않습니다.

또한 문제가 될 것이라고 생각했기 때문에 EventValidation을 비활성화했지만이 문제는 계속 발생합니다.

URL을 다시 작성할 때 viewstate 및 postbacks를 평소와 같이 작동 시키려면 어떻게합니까?

당신은 URL뿐만 아니라 다시 작성되고 있다는 HttpContext를 얘기해야 할 수도 있습니다

답변

0

(참고 URL 재 작성의 내 양식은 사용자에게 보낸 HTTP 리디렉션이 결코 모든 내부적으로 다시 작성하지 않습니다). 이 같은 일을

시도 :

HttpContext.Current.RewritePath("/test"); 
+1

이것은 불행하게도 아무 일도하지 않습니다. 그러나, 나는 그것이 내 양식 - 재 작성 코드를 무의미하게 만든다고 믿는다. 그래서 그것은 좋은 일이다. – Earlz

+0

이것은 분명히 내 form-page_load 후에 끝난다면 코드를 바꾼다. – Earlz

0

IsPostBack을은 요청이 페이지 자체의 컨트롤에서인지 여부를 확인하는 데 사용됩니다.

HttpMethod는 요청 유형을 확인하는 데 사용됩니다.

관련 문제