И вообще, утрата возможности использования нескольких форм — не слишком большая жертва. Иногда они действительно полезны, но не так часто, как вы думаете. Применение нескольких форм оправданно, если вы реализуете функциональность на основе форм в большом количестве стра­ниц — например, в процессе поиска или авторизации. Чуть позже я вер­нусь к этому вопросу. Однако, прежде чем двигаться дальше, рассмотрим класс

Класс HtmlForm

Класс HtmlForm наследует от гкпнСипиппегСошт! и реализует интер- фейс                                              Функциональность базового класса позволяет HtmlForm выступать в роли контейнера дочерних элементов управления. Той же функциональностью обладают и другие классы элементов управ- ления HTML, например 1 lunlTabk-. Интерфейс lAttributeAccessor опреде- ляет два метода: GetAttribute и SetAttribute. Они используются при чте- нии значений атрибутов из открывающего тэга.

Класс Htm!Form обеспечивает программный доступ к HTML-элементу <form> на серверной стороне через набор свойств, перечисленных в табл. i. У формы должно быть уникальное имя. Если оно не задано программис­том, его генерирует ASP.NET по шаблону ...ctLV где X — уникальное целое число (обычно порядковый номер элемента управления на странице). Программист может указать идентификатор формы через свойство ID или свойство Name. Если установлены оба свойства, преимущество отдается ID. На его основе ASP.NET формирует значения Uni<pielU и ClientlD. Uni(|Hcl 1) — это полностью определенная (fully qualified) строка, основан­ная на именующем контейнере формы (naming container of the form) (в его роли обычно выступает сама страница). В свою очередь ClientlD исполь­зуется для идентификации элемента управления в операциях, выполняе­мых на клиентской стороне, например в функциях JavaScript, Впрочем, эта логика применяется не только к формам, но и ко всем серверным элемен­там управления.