ASP.NET уеб приложенията представляват най-общо съвкупност от уеб форми. Нека разгледаме как можем да създаваме и използваме уеб форми.
Какво е уеб форма (Web Form)?
Уеб формата е програмируема уеб страница. Тя служи като потребителски интерфейс в ASP.NET уеб приложенията. Уеб формите съдържат HTML код и контроли. Те се изпълняват на уеб сървъра. Най-често това е Microsoft Internet Information Server (IIS). Уеб формите връщат като резултат потребителски интерфейс, под формата на HTML код, който се изпраща на клиентския браузър.
Създаване на уеб форма
Функциите на уеб формата се дефинират, като се използват три нива на атрибути.
Атрибутите на @Page директивата дефинират глобална функционалност. Атрибутите на body тага дефинират как ще се покаже една страница. Атрибутите на form тага дефинират как ще се обработят групите контроли.
Забележка: @Page директивата е специална конструкция, използвана в ASP.NET уеб формите. Въпреки че и в HTML има и тагове, същите (когато са записани така <bodyrunat="server" ...> и <formrunat="server" ...>) играят по-специална роля в ASP.NET. Тези особености са обяснени в детайли по-нататък.
Поддържат се два вида разполагане на HTML елементите на страницата.
FlowLayout: HTML обектите се нагласят по ширината на прозореца на браузъра.
GridLayout: HTML обектите са с абсолютни координати на HTML страницата. Това е стойността по подразбиране.
Директиви
Директивите предоставят възможност за контролиране на компилацията и изпълнението на уеб формата. Името на всяка директива започва с "@" и е заградено с <% и %> тагове. Директивите могат да бъдат поставени навсякъде в .aspx файла на формата, но обикновено се поставят в началото му. Настройките и опциите към всяка директива се задават като атрибути.
Важни директиви:
@Page – главна директива за формата (по-късно разгледана);
@Implements – указва, че формата (или контролата) имплементира даден интерфейс;
@Control – аналог на @Page директивата (използва се само за потребителски контроли);
@OutputCache – контролира способността за кеширане на формите;
@Register – регистрира контрола за употреба в уеб форма;
@Reference – декларативно указва, че сорс файлът на друга потребителска контрола или форма трябва да бъде динамично компилиран и свързан с формата, в която е декларирана директивата.
Ето един пример за използване на @Page директивата:
Дефинира специфични за формата (.aspx файл) атрибути, използвани от парсера и компилатора на ASP.NET.
Важни атрибути:
AutoEventWireup – решава автоматичното абониране за събитията на страницата и контролите.
Culture – определя културата (регионалните настройки), която да се използва при обработка на данните.
UICulture – определя културата за видимите от потребителя текстови съобщения.
Debug – определя дали тази страница е компилирана с дебъг символи (debug symbols).
EnableSessionState – определя дали ще се поддържа сесията.
EnableViewState – определя дали ще се използва "view state".
ErrorPage – определя страница, към която ще се пренасочва в случай на необработено изключение.
Атрибути на директивата <@Page …>
Чрез използването на @Page атрибути се дефинират глобални свойства на уеб формата. Тагът <@ Page> дефинира специфични за страницата атрибути. Те се използват от парсера за страници на ASP.NET и компилатора. В даден .aspx файл може да бъде включи само един <@ Page> таг.
Атрибутът Language дефинира програмния език на скрипта в уеб страницата. Най-често използвани са: Visual Basic.NET и C#, като се поддържат и Visual J#, JScript.NET и т.н.
Атрибутът CodeBehind сочи към code-behind страницата (файла), който съдържа логиката на уеб формата. При създавана на уеб форма във Visual Studio.NET (например WebForm1.aspx), се създава автоматично и code-behind клас във файл с име: WebForm1.aspx.vb или WebForm1.aspx.cs.
Атрибутът SmartNavigation в ASP.NET инструктира браузъра да опреснява само тези секции от формата, които са се променили. Технологията Smart Navigation премахва премигването на екрана при опресняване. Scroll позицията се запазва и "last page" в историята остава същата. Smart Navigation е достъпен само за ползватели на Microsoft Internet Explorer 5 или по-нов.