Estoy escribiendo un código que imita el efecto de hacer una devolución de datos a una página ejecutando exactamente la misma solicitud web que se generaría al hacer clic en un botón que activa la devolución de la página.¿Cómo sabe una página de asp.net qué botón desencadenó una devolución de datos?
El problema es que la respuesta de la solicitud web no es la misma que obtengo al hacer clic en el botón.
Al investigar, veo que aunque el evento Page_Load se desencadena y se maneja cuando ejecuto la solicitud web, no se ejecuta el controlador para el clic de botón (lo que significa que el evento no se desencadena o se está desencadenando pero no manejado - supongo que es más probable que el primer caso).
Así que mi pregunta es - ¿cómo sabe ASP.NET qué botón se ha hecho clic para que pueda invocar el controlador adecuado?
Pensé que esto se hizo usando el parámetro __EVENTTARGET - Lo he configurado correctamente en el cuerpo del mensaje de la solicitud web, pero esto no hizo diferencia.
Miré el argumento decodificado __VIEWSTATE, pero no pude ver nada obvio allí.
¿Alguien puede proporcionarme más ayuda?
EDIT: Para que quede claro, no estoy preguntar cómo agregar un controlador de clic para una aplicación web.
Más bien, estoy buscando en una aplicación que ya tiene tiene un botón haga clic en controlador de eventos, y quiero saber cómo asp.net se da cuenta de una solicitud web entrante qué botón hacer clic en el código del controlador de eventos para invocar.
¿Puedes dar más detalles sobre cómo estás haciendo la webrequest? ¿Usando código C# o jquery o javascript? ¿Transmite el _Viewstate junto con la solicitud web? ¿Qué error estás viendo? –
Estoy usando C#. Lo que estoy haciendo es que estoy haciendo una solicitud inicial a una página, y obtengo un elemento __VIEWSTATE en la respuesta. Luego, en la solicitud web que genero para imitar la devolución de datos, paso el valor de este __VIEWSTATE. No veo un error; lo único que veo es que cuando pongo un punto de interrupción en el código del servidor es porque no se está llamando al código para manejar el botón clic en el servidor. –