如何访问静态Web方法内的页面控件?

我已经使用jQuery使用静态WebMethod方法调用了一个代码隐藏方法。

该Web方法调用是成功的,但当试图访问文本框控件时,它是给出错误。 非静态字段,方法或属性需要对象引用。

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

正如@Tim Schmelter所提到的,这并不能回答这个问题,因为你不能从webmethod访问页面的控件。

请从静态函数中通过asp.net访问一个控件

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

以上方法是为了find控制值。 [WebMethod]的重点在于它们不运行ASP.Net页面生命周期。 这样,它们快速并行。 您的控件不存在。

相反,你应该使用Javascript(更好)或UpdatePanel(更糟糕)。

你的问题是如何在静态方法中获取控件的重复

Web方法接受的答案是错误的。

正如Tim Schmelter在评论中提到的那样:

您不能从webmethod访问页面的控件

这是真的,因为Web方法不带有页面状态。 这不是一个完整的回发。 而只是会话cookie与请求一起旅行。 你必须做一个完整的页面回发来获取或设置控制值。