저자: Cui Chikun(Richard Troy-Rex, RickTroy)
연락처: [email protected] , http://ricktroy.cnblogs.com/
어제 저는 ASP.NET V1.1.4322에서 Ajax를 사용하는 간단한 솔루션을 찾고 있었지만 ASP.NET 페이지 모델이 매우 "이상하다". 모든 이벤트와 내부 메서드 중에서 페이지를 새로 고치지 않고는 솔루션을 수집할 수 없는 것 같습니다. 페이지의 XmlHttpRequest를 사용하여 HTTP GET을 수행하더라도 Page_Load 이벤트가 실행되지 않습니다. XmlHttpRequest의 responseText에 있는 Page_Load 코드에 테스트 결과가 없습니다.
나중에 HtmlControl을 사용하고 __doPostBack(EventTarget, EventArgument);을 사용하여 raisePostBackEvent를 스크립팅하고 싶지만 양식이 제출되면 페이지가 새로 고쳐집니다. (나중에 이것이 HTML 형식의 상식이라는 것을 알았습니다. 이전에는 배운 적이 없습니다.) 그러나 HtmlControl을 사용하여 XmlHttpRequest의 HTTP GET을 수행하더라도 여전히 문제가 해결되지 않습니다. (Page_Load 이벤트가 위와 같이 응답하지 않습니다.) )
추신: 서버 PostBack용 WebControl을 모방하려는 경우 클라이언트에 __EVENTTARGET 및 __EVENTARGUMENT라는 두 개의 숨겨진 입력을 작성한 다음 __doPostBack(control, 인수) 스크립트 구문을 사용하여 PostBack 이벤트를 트리거할 수 있습니다.
다른 사람의 ProfessionalASP.NET
을 빌린 후에야 ASP.NET 모델에서 IHttpHandler와 IHttpModule을 사용하여 HTTP 요청을 할 수 있다는 것을 알았습니다. 그러나 이 두 클래스는 응답이 있더라도 사전 컴파일이 필요합니다. 라이브러리를 작성할 수 있지만 확장성은 낙관적이지 않습니다.
페이지에서 HTTP 요청에 직접 응답하고 처리할 수 있는 이벤트와 메서드가 있습니까?
아니면 누가 데이터 형식을 전달하기 위해 양식 submit() 메소드를 제공할 수 있습니까?
요청 시 XmlHttpRequest를 보낼 수 있기 때문에 submit 데이터의 형태를 알면 새로 고치지 않고 데이터를 제출할 수 있을 것 같다(그러나 보안상의 위험이 있을 것 같다는 생각도 해봤다).
조언을 부탁드립니다.