Ich bin daran interessiert zu wissen, was genau Page.IsPostBack bedeutet. Ich bin mir dessen bewusst, dass es täglich in einer ASP.NET-Standardseite verwendet wird, die angibt, dass der Benutzer es ist Zurücksenden von Daten an die Serverseite. Siehe Seite: IsPostBack-Eigenschaft
Aber angesichts dieses HTML
%Vor% Wenn Sie auf die Schaltfläche Submit klicken, wird die Seite Page_Load-Methode aufgerufen, aber die Page.IsPostBack gibt false zurück. Ich möchte runat=server
nicht hinzufügen.
Wie erkenne ich den Unterschied zwischen dem erstmaligen Laden der Seiten und einer Anfrage, die vom Client beim Senden verursacht wurde?
update
Ich habe in <input type="text" value="aa" name="ctrl" id="ctrl" />
hinzugefügt, so dass das Request.Form ein Element hat und Request.HTTPMethod ist POST, aber IsPostBack ist immer noch falsch?
Eine Möglichkeit besteht darin, die ASP.NET Page-Klasse zu erweitern, die IsPostBack-Eigenschaft zu überschreiben und alle Ihre Seiten von der erweiterten Seite ableiten zu lassen.
%Vor%Überprüfen Sie die Request.Form-Auflistung, um festzustellen, ob sie nicht leer ist. Nur ein POST enthält Daten in der Request.Form-Auflistung. Wenn es keine Formulardaten gibt, ist die Anfrage natürlich nicht von einem GET zu unterscheiden.
Was die Frage in Ihrem Titel betrifft, wird IsPostBack auf "true" gesetzt, wenn die Anfrage ein POST von einem serverseitigen Formularsteuerelement ist. Deine Form nur auf der Client-Seite zu machen, besiegt dies.
In dem Beispiel, das Sie in Ihre Frage einbeziehen, ist kein Viewstate beteiligt. Es gibt keine Möglichkeit für den Server, diese Anforderung mit einer vorherigen Anforderung der Seite zu verknüpfen und sie als eine Einheit zu behandeln. Die Anfrage, die zum Klicken auf die Schaltfläche führt, sieht wie jede andere zufällige Anfrage aus, die zum Server kommt.
Im Allgemeinen könnte man einen PostBack als Kombination von:
sehenDas ist nicht 100% idiotensicher, es berücksichtigt keinen Zustand irgendeiner Art (den Sie wahrscheinlich wollen, auch wenn Sie es nicht wissen), aber es ist ein Beitrag , Zurück zur aktuellen Seite.
Sie könnten die Header überprüfen, um zu sehen, ob Ihre Eingabe Steuerelemente einen Wert zurückgeben (indem Sie Request.Forms verwenden, wie tvafosson darauf hinweist). Die wirklich große Frage ist jedoch, warum Sie