How to get controls in static web method

2019-01-20 19:45发布

问题:

I have a [WebMethod] and i want to assign values to a text box using the this code:

[WebMethod]
public static void MyMethod(string s)
{
     //TextBox1.Text = s;   //Here how can i access the textbx?
}

回答1:

You can't.

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.

Instead, you should use Javascript (better) or an UpdatePanel (worse).



回答2:

in case of static method(ie, page method asynchronous call), whole page is not posted back..and hence there is no information on server about the page controls(textbox or whatever)..

server doesn't retain the state of any of the controls or so while rendering unless made to do so(session or any other state management)..

So if you want to work one the values of the page controls, send such information in the asynchronous request itself and work on those values and return the response..and assign it to respective controls back in client side script..