Ich schreibe einen Code, der die Wirkung eines Postbacks auf eine Seite nachahmt, indem genau dieselbe Webanforderung ausgeführt wird, die beim Klicken auf eine Schaltfläche generiert wird, die das Seitenpostback auslöst.Wie weiß eine asp.net-Seite, welcher Button ein Postback ausgelöst hat?
Das Problem ist, dass die Antwort von der Web-Anfrage ist nicht das gleiche wie das, was ich bekomme, wenn Sie auf die Schaltfläche klicken.
Bei der Untersuchung, ich sehe, dass, obwohl das Page_Load -Ereignis ausgelöst und behandelt wird, wenn ich die Webanforderung ausführen, der Handler für den Button klicken nicht ausgeführt wird (was bedeutet, dass entweder das Ereignis nicht ausgelöst wird, oder es ausgelöst wird) aber nicht behandelt - ich vermute, es ist eher der erste Fall).
Also meine Frage ist - Woher weiß ASP.NET, welche Schaltfläche geklickt wurde, so dass es den entsprechenden Handler aufrufen kann?
Ich dachte, dass dies mit dem __EVENTTARGET-Parameter getan wurde - ich habe das korrekt im Post-Body der Web-Anfrage eingestellt, aber das machte keinen Unterschied.
Ich schaute auf das decodierte __VIEWSTATE Argument, aber ich konnte nichts Offensichtliches darin sehen.
Kann jemand weitere Hilfe zur Verfügung stellen?
EDIT: Nur klar zu sein, ich bin nicht zu fragen, wie ein Click-Handler auf eine Web-Anwendung hinzuzufügen.
Eher, ich bin auf eine Anwendung, die bereits hat eine Schaltfläche klicken Ereignishandler, und ich möchte wissen, wie asp.net aus einer eingehenden Webanforderung herauskommt, welche Schaltfläche klicken Ereignishandler-Code aufrufen.
Können Sie nähere Angaben dazu machen, wie Sie die Webanfrage stellen? Verwenden von C# -Code oder Jquery oder Javascript? Übergeben Sie den _Viewstate zusammen mit der Webanfrage? Welchen Fehler siehst du? –
Ich benutze C#. Was ich mache ist, dass ich eine erste Anfrage an eine Seite mache und ein __VIEWSTATE Element in der Antwort zurückbekomme. Dann übergebe ich in der Web-Anfrage, die ich generiere, um das Postback nachzuahmen, den Wert dieses __VIEWSTATE. Ich sehe keinen Fehler - alles, was ich sehe ist, wenn ich einen Breakpoint auf den Server-Code setzen, ist, dass der Code, um den Button auf den Server klicken nicht angerufen wird. –