Sto scrivendo un codice che imita l'effetto di creare un postback su una pagina eseguendo esattamente la stessa richiesta Web che verrebbe generata facendo clic su un pulsante che attiva il postback della pagina.Come fa una pagina di asp.net a sapere quale pulsante ha attivato un postback?
Il problema è che la risposta dalla richiesta web non è uguale a quella che ottengo quando si fa clic sul pulsante.
Durante gli accertamenti, vedo che anche se l'evento Page_Load viene attivato e gestito quando eseguo la richiesta Web, il gestore per il clic del pulsante non viene eseguito (ovvero l'evento non viene attivato o viene attivato ma non gestito - Immagino che sia più probabile il primo caso).
Quindi la mia domanda è - in che modo ASP.NET sa quale pulsante è stato cliccato in modo che possa richiamare il gestore appropriato?
Ho pensato che ciò fosse fatto usando il parametro __EVENTTARGET - ho impostato correttamente questo nel corpo del post della richiesta web, ma questo non ha fatto differenza.
Ho esaminato l'argomento __VIEWSTATE decodificato, ma non sono riuscito a vedere nulla di ovvio.
Qualcuno può fornire ulteriore aiuto?
EDIT: Giusto per essere chiari, io non chiedendo come aggiungere un gestore di clic per un'applicazione web.
Piuttosto, sto guardando un'applicazione che già ha un gestore di eventi click del pulsante, e voglio sapere come asp.net calcola da una richiesta web in entrata quale pulsante cliccare sul codice del gestore di eventi da richiamare.
Puoi fornire maggiori dettagli su come stai effettuando il webquest? Usando il codice C# o jquery o javascript? Stai passando lungo _Viewstate insieme alla richiesta web? Che errore stai vedendo? –
Sto usando C#. Quello che sto facendo è che sto facendo una richiesta iniziale a una pagina e recuperando un elemento __VIEWSTATE nella risposta. Quindi nella richiesta web generata per simulare il postback, trasmetto il valore di questo __VIEWSTATE. Non vedo un errore - tutto quello che vedo è quando inserisco un breakpoint sul codice server è che il codice per gestire il clic del pulsante sul server non viene chiamato. –