¿Cómo acceder a los controles de página dentro de un método web estático?

He llamado a un método de código detrás de jQuery utilizando un método estático WebMethod .

Esa llamada al método web fue exitosa, pero cuando se intentó acceder a un control de cuadro de texto, se está dando un error. Se requiere una referencia de objeto para el campo, método o propiedad no estático.

 [WebMethod] public static Savedata() { //code to insert data to DB //after inserting data successfully i need to change the text box text like following. txtStatus.Text="Data Received"; } 

Como lo menciona @Tim Schmelter Esto no responde a esta pregunta porque no puede acceder a los controles de la página desde un método web .

Vaya a través de asp.net acceda a un control desde la función estática

 public static void Savedata() { if (HttpContext.Current != null) { Page page = (Page)HttpContext.Current.Handler; TextBox TextBox1 = (TextBox)page.FindControl("TextBox1"); TextBox TextBox2 = (TextBox)page.FindControl("TextBox2"); } } 

El método anterior es para encontrar los valores de control. El objective de [WebMethod] s es que no ejecuten el ciclo de vida de la página ASP.Net. De esta forma, son rápidos y paralelizables. Tus controles no existen.

su pregunta es duplicada de Cómo obtener controles en el método estático

La respuesta aceptada es incorrecta para los métodos web.

Como Tim Schmelter mencionó correctamente en un comentario:

no puede acceder a los controles de la página desde un webmethod

Eso es cierto porque los métodos web no tienen el estado de la página. No es una devolución de datos completa. En su lugar, solo la cookie de sesión viaja con la solicitud. Tienes que hacer una devolución de datos de página completa para obtener o establecer los valores de control.