ASP.NET: серверные элементы управления (с префиксом ASP) обрабатываются на сервере через C#, VB или на клиенте, через JS?

360
09 декабря 2016, 08:46

Допустим, имеется кнопка (не submit, а обычная кнопка), с префиксом asp (asp:button) и атрибутом runat = server.

На события "клик" у нее в codebehind есть обработчик написанный на C#/VB/managed C++. Но, браузер, конечно, не понимает C#/VB/managed C++ и здесь я запутался, т. к. есть 2 способа обработки:

  1. для того чтоб обработать событие клик браузер, после клика посылает запрос на сервер, и сервер, запускает dll-ку, в котором есть код для обработки клика по кнопке.
  2. Сервер перед отправкой страницы браузеру с самого начала код обработки клика написанный на C#/VB/managed C++ переводит в Javascript, и вместе с страницей отсылает браузеру js-сценарий, и при клике по кнопке обрабатывался cценарий, написанный js.

Вопрос: ASP.NET: серверные элементы управления (с префиксом ASP) обрабатываются на сервере через C#, VB или на клиенте, через JS? Заранее спасибо.

Answer 1

Работает первый сценарий.

При клике на кнопку c runat=server, у которой указан аттрибут OnClick делается запрос на сервер. На сервере создается заново класс страницы со всеми контролами, заново создается C#-объект типа Button, в них загружается состояние из ViewState. У объекта Button вызывается событие Click.

После обработки события состояние сохраняется обратно во ViewState, страница заново отрисоваывается, и отправляется клиенту.

READ ALSO
Распараллеливание списка

Распараллеливание списка

Добрый деньУ меня возникла следующая задача: я получаю список строк, после этого создаю экземпляр класса и вызываю в нём метод

369
html Как обрезать ссылку

html Как обрезать ссылку

Имеется строка:

421
Как очистить errorprovider через заданный timeout?

Как очистить errorprovider через заданный timeout?

Есть 10 контролов, есть один errorproviderЕсли в контроле нет текста, появляется сообщение типа

356
c# String hex в int hex

c# String hex в int hex

Есть строка

301