2013-08-27 6 views

ответ

7

Они являются статичными, поскольку они полностью без гражданства, они не создают экземпляр класса вашей страницы, и ничто не передается им в запросе (то есть ViewState и значения поля формы).

HTTP по умолчанию не имеет гражданства, ASP.Net делает много вещей в фоновом режиме с помощью ViewState, Session и т. Д. Во время стандартного запроса страницы, чтобы сделать жизнь проще для разработчиков.

Когда веб-метод вызывается через AJAX, страница не отправляет все необходимые данные формы, которые ASP.Net хранит на странице, чтобы отслеживать состояние запроса, поскольку это слишком медленно приводит к веб-методам; и если вам нужно много обрабатывать, вы должны переместить его на выделенный веб-сервис.

Вы можете получить доступ к методам на странице, используя HttpContext.CurrentHandler, который поясняется более подробно here, а также текущий пользователь, если вам нужно, через HttpContext.Current.User.

Существует замечательная статья here, объясняющая это более подробно.

+2

Confused. Почему веб-методы на этой странице (https://msdn.microsoft.com/en-us/library/byxd99hx%28v=vs.90%29.aspx) не статичны? – Moon

+2

Потому что он размещается в веб-службе, а не на веб-странице. – Sean

Смежные вопросы