Почему веб-формы ASP.NET нуждаются в атрибуте Runat = "Server"? - PullRequest
201 голосов
/ 20 ноября 2008

Почему я должен указывать runat="server" на всех моих элементах управления ASP.NET, когда это обязательный атрибут, а server - единственный вариант, доступный в моих ограниченных знаниях ASP.NET, и я получаю ошибку, если я не используете это?

Я понимаю, что могу по желанию использовать его в своих тегах HTML, и я понимаю парадигму клиент / сервер и то, что она на самом деле указывает.

Является ли это избыточным тегом, который может просто подразумеваться элементом управления, являющимся элементом управления ASP.NET, или есть основная причина?

Ответы [ 13 ]

0 голосов
/ 01 сентября 2017

Довольно избыточный атрибут, учитывая, что тег «asp», очевидно, является элементом ASP и должен быть достаточным для идентификации его как доступного на стороне сервера элемента.

В других местах, однако, он используется для повышения нормальных тегов, которые будут использоваться в коде позади.

0 голосов
/ 02 марта 2014

runat="Server" указывает на обратную передачу на сервер для HTML-элемента управления.

Веб-формы постоянно используют postback для подачи сигнала серверу на обработку события управления страницей.

.NET MVC страниц НЕ используйте postback (за исключением формы "submit"). MVC полагается на JQUERY для управления страницей на стороне клиента (таким образом, обходя необходимость в большом количестве postback сообщений на сервер).

Итак: .NET Веб-формы ... используйте атрибут "runat" в разметке страницы.

.NET MVC почти не использует атрибут "runat" в разметке страницы.

Надеюсь, это поможет прояснить, почему runat необходимо ...

0 голосов
/ 27 января 2013

При отправке данных на веб-сервер ASP.NET элементы управления, обозначенные как Runat = «server», будут представлены как объекты Dot Net в приложении сервера. Вы можете вручную ввести код в элементы управления HTML или использовать опцию Запуск от имени сервера , щелкнув правой кнопкой мыши в режиме конструктора. Элементы управления ASP.NET автоматически получат этот атрибут, как только вы перетащите его из панели инструментов, где обычно нет элементов управления HTML.

...