Autor: Cui Chikun (Richard Troy-Rex, RickTroy)
Kontakt: [email protected] , http://ricktroy.cnblogs.com/
Gestern habe ich nach einer einfachen Lösung für die Verwendung von Ajax in ASP.NET V1.1.4322 gesucht, aber festgestellt, dass das ASP.NET-Seitenmodell sehr gut ist „seltsam“. Unter all den Ereignissen und internen Methoden scheint keine in der Lage zu sein, die Lösung zu sammeln, ohne die Seite zu aktualisieren. Selbst wenn die XmlHttpRequest in der Seite zum Ausführen von HTTP GET verwendet wird, wird das Page_Load-Ereignis nicht ausgeführt (weil Es gibt kein Testergebnis im Page_Load-Code im ResponseText
von (Später habe ich herausgefunden, dass dies der gesunde Menschenverstand von HTML-Formularen ist, ich habe es noch nie zuvor gelernt.) Aber selbst wenn Sie HtmlControl verwenden, um HTTP GET von XmlHttpRequest durchzuführen, kann das Problem immer noch nicht gelöst werden (das Page_Load-Ereignis reagiert nicht wie oben). ).
PS: Für diejenigen, die WebControl für Server-PostBack nachahmen möchten, können Sie zwei versteckte Eingaben mit den Namen __EVENTTARGET und __EVENTARGUMENT schreiben und dann die Syntax des Skripts __doPostBack(control, argument); verwenden, um das PostBack-Ereignis auszulösen
Erst nachdemich
mir das professionelle ASP.NET ausgeliehen hatte, wusste ich, dass IHttpHandler und IHttpModule im ASP.NET-Modell verwendet werden können, aber diese beiden Klassen erfordern in diesem Fall eine Vorkompilierung Bibliothek kann geschrieben werden, ihre Skalierbarkeit ist nicht optimistisch.
Können Sie mir bitte einen Rat geben, gibt es Ereignisse und Methoden, die direkt auf HTTP-Anfragen auf der Seite reagieren und diese verarbeiten können?
Oder wer kann eine Formular-submit()-Methode bereitstellen, um das Datenformat zu übergeben?
Da XmlHttpRequest zum Zeitpunkt der Anforderung gesendet werden kann und wir die Form der Übermittlungsdaten kennen, können wir die Daten anscheinend ohne Aktualisierung übermitteln (ich habe jedoch auch berücksichtigt, dass dies Sicherheitsrisiken mit sich bringt).
Bitte geben Sie mir Ihren Rat.