ผู้แต่ง: ฉุย ชิคุน (ริชาร์ด ทรอย-เร็กซ์, ริกทรอย)
ติดต่อ: [email protected] , http://ricktroy.cnblogs.com/
เมื่อวานฉันกำลังมองหาวิธีแก้ปัญหาง่ายๆ สำหรับการใช้ Ajax ใน ASP.NET V1.1.4322 แต่พบว่ารูปแบบเพจ ASP.NET นั้นดีมาก "แปลก" ในบรรดาเหตุการณ์และวิธีการภายในทั้งหมดที่มี ดูเหมือนจะไม่มีใครสามารถรวบรวมโซลูชันโดยไม่ต้องรีเฟรชเพจ แม้ว่าจะใช้ XmlHttpRequest ในเพจเพื่อดำเนินการ HTTP GET แต่เหตุการณ์ Page_Load จะไม่ถูกดำเนินการ (เนื่องจาก ไม่มีผลการทดสอบในโค้ด Page_Load ใน responseText ของ XmlHttpRequest )
ต่อมาฉันหวังว่าจะใช้ HtmlControl จากนั้นใช้ __doPostBack(EventTarget, EventArgument); เพื่อสคริปต์ RaisePostBackEvent แต่พบว่าเมื่อส่งแบบฟอร์มแล้ว เพจจะถูกรีเฟรช (ต่อมาฉันพบว่านี่เป็นสามัญสำนึกของรูปแบบ Html ฉันไม่เคยเรียนรู้มาก่อน) แต่ถึงแม้ว่าคุณจะใช้ HtmlControl เพื่อดำเนินการ HTTP GET ของ XmlHttpRequest ปัญหาก็ยังไม่สามารถแก้ไขได้ (เหตุการณ์ Page_Load ไม่ตอบสนองดังที่กล่าวข้างต้น
PS: สำหรับผู้ที่ต้องการเลียนแบบ WebControl สำหรับเซิร์ฟเวอร์ PostBack คุณสามารถเขียนอินพุตที่ซ่อนอยู่สองรายการบนไคลเอนต์ชื่อ __EVENTTARGETและ
__EVENTARGUMENT จากนั้นใช้ไวยากรณ์ของสคริปต์ __doPostBack(control, argument);
หลังจากยืม Professional ASP.NET ของผู้อื่นแล้ว
ฉันจึงรู้ว่า IHttpHandler และ IHttpModule สามารถใช้ในโมเดล ASP.NET เพื่อทำการร้องขอ HTTP ได้ แต่ในกรณีนี้ ทั้งสองคลาสจำเป็นต้องมีการคอมไพล์ล่วงหน้า แม้ว่าจะมีการตอบกลับก็ตาม สามารถเขียนไลบรารี่ได้ แต่ความสามารถในการปรับขนาดนั้นไม่ดีนัก
คุณช่วยกรุณาให้คำแนะนำหน่อยได้ไหม มีเหตุการณ์และวิธีการใดบ้างที่สามารถตอบสนองและประมวลผลคำขอ HTTP บนเพจได้โดยตรง
หรือใครสามารถให้วิธีการส่งแบบฟอร์ม () เพื่อส่งผ่านรูปแบบข้อมูลได้บ้าง
เนื่องจากสามารถส่ง XmlHttpRequest ได้ในเวลาที่ร้องขอ ถ้าเราทราบรูปแบบการส่งข้อมูล ดูเหมือนว่าเราสามารถส่งข้อมูลได้โดยไม่ต้องรีเฟรช (แต่ฉันก็พิจารณาด้วยว่าสิ่งนี้ดูเหมือนว่าจะมีความเสี่ยงด้านความปลอดภัย)
กรุณาให้คำแนะนำของคุณ.