Как получить элементы управления в статическом веб-методе - PullRequest
0 голосов
/ 23 января 2012

У меня есть [WebMethod], и я хочу присвоить значения текстовому полю, используя этот код:

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

Ответы [ 2 ]

15 голосов
/ 23 января 2012

Вы не можете.

Смысл [WebMethod] s в том, что они не запускают жизненный цикл страницы ASP.Net. Таким образом, они быстрые и распараллеливаемые.
Ваши элементы управления не существуют.

Вместо этого вы должны использовать Javascript (лучше) или UpdatePanel (хуже).

1 голос
/ 23 января 2012

в случае статического метода (т. Е. Асинхронного вызова метода страницы) вся страница не отправляется обратно ... и, следовательно, на сервере нет информации об элементах управления страницы (текстовое поле или что-либо еще) ..

сервер не сохраняет состояние какого-либо элемента управления или около того во время рендеринга, если только это не было сделано (сеанс или любое другое управление состоянием).

Так что, если вы хотите обработать одно из значений элементов управления страницей, отправьте такую ​​информацию в самом асинхронном запросе, работайте с этими значениями и верните ответ .. и назначьте ее соответствующим элементам управления обратно в сценарии на стороне клиента.

...