How to access page controls inside a static web me

2020-01-26 10:57发布

问题:

I have called a Code behind method using jQuery using a static WebMethod method.

That web method call was success but when tried to access a text box control it is giving error. An object reference is required for the non-static field, method, or property.

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

回答1:

As mentioned by @Tim Schmelter This doesn't answer this question because you can't access page's controls from a webmethod.

Please go through asp.net access a control from static function

The whole point of [WebMethod]s is that they don't run the ASP.Net page lifecycle. This way, they're fast and parallelizable. Your controls don't exist.

your question is duplicate of How to get controls in static web method



回答2:

The accepted answer is wrong for web methods.

As Tim Schmelter mentioned correctly in a comment:

you can't access page's controls from a webmethod

That is true since web methods don't carry the page state. It isn't a full postback. Instead just the session cookie travels with the request. You have to do a full page postback to get or set the control values.