Comment accéder aux contrôles de page dans une méthode Web statique?

J’ai appelé une méthode Code behind à l’aide de jQuery à l’aide d’une méthode WebMethod statique.

Cet appel de méthode Web a abouti, mais lorsque vous tentez d’accéder à un contrôle de zone de texte, il génère une erreur. Une référence d’object est requirejse pour le champ, la méthode ou la propriété non statique.

 [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"; } 

Comme mentionné par @Tim Schmelter Cela ne répond pas à cette question, car vous ne pouvez pas accéder aux contrôles de page à partir d’une méthode Web .

Veuillez passer par asp.net accéder à un contrôle de la fonction statique

 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"); } } 

La méthode ci-dessus sert à trouver les valeurs de contrôle. L’intérêt principal de [WebMethod] est qu’ils n’exécutent pas le cycle de vie d’une page ASP.Net. De cette façon, ils sont rapides et parallélisables. Vos contrôles n’existent pas.

votre question est en double sur Comment obtenir des contrôles dans une méthode statique

La réponse acceptée est fausse pour les méthodes Web.

Comme Tim Schmelter l’a mentionné correctement dans un commentaire:

vous ne pouvez pas accéder aux contrôles de la page à partir d’une méthode Web

Cela est vrai puisque les méthodes Web ne portent pas l’état de la page. Ce n’est pas un postback complet. Au lieu de cela, seul le cookie de session voyage avec la demande. Vous devez faire une publication complète de la page pour obtenir ou définir les valeurs de contrôle.