MC, 14:29 sobota, 14.07.2012 r.
Ilustracja do artykułu: ASP.NET - Tagi <%, <%=, <%:, <%#, <%$, <%@ i ich znaczenie

ASP.NET - Tagi <%, <%=, <%:, <%#, <%$, <%@ i ich znaczenie

Technologia ASP.NET służąca do tworzenia aplikacji webowych dostarcza szeregu tagów używanych we front-code (pliki .aspx). Każdy z nich ma nieco inne znaczenie i działa tylko w określonych sytuacjach. Zazwyczaj po dłuższej przerwie od pracy z ASP.NET, często mylę tagi używając ich w niewłaściwych kontekstach. W tym wpisie postaram się pokrótce opisać każdy z nich.

W czym problem?

Jak wspomniałem, technologia ASP.NET oddaje programiście kilka tagów służących do dostarczania informacji/wykonywania kodu w widoku strony. Problem w tym, że są one do siebie bardzo podobne, a sytuacje w których można stosować każdy z nich, są odmienne, przez co bardzo często pojawiają się błędy wynikające nie z niepoprawnej logiki aplikacji, a z niewłaściwie użytych tagów. Spróbujmy opisać każdy z nich.

Tag <% %>

Jest to najprostszy tag, który służy do zwykłego wykonywania kodu. Nie używamy go zatem do bindowania treści, a raczej do instrukcji warunkowych itp.
<% if(warunek){ %>
fragment widoku
<% } else { %>
inny fragment widoku
<% } %>

Tag <%@ %>

Ten tag służy do podawania dyrektyw takich jak dołączanie przestrzeni nazw, czy kontrolek (UserControl)
<%@ Import namespace="Jakis.Namespace" %>

Tag <%= %>

Przy pomocy tego znacznika dołączamy do strony (w sensie wyświetlamy) wskazaną wartość:
Dziś mamy: <%= DateTime.Now.ToShortDateString() %>

Tag <%# %>

Tag ten jest bardzo podobny do poprzedniego, tyle że używamy go podczas przypinania danych do jakiejś właściwości kontrolki (porównaj proszę poniższy przykład, z tym wyżej):
Dziś mamy: <asp:Label runat="server" Text="<%= DateTime.Now.ToShortDateString() %>" />

Tag <%: %>

Ten znacznik działa niemalże tak samo jak opisany już <%=, tyle że w tym wypadku wartość zostanie dodatkowo przekodowana do HTML-a.

Tag <%$ %>

Tego tagu używamy gdy właściwości jakiejś kontrolki chcemy przypisać wartość pochodzącą z konfiguracji aplikacji (np. connection stringi, czy dane z application settings):
<asp:SqlDataSource ID="SqlDataSource1" Runat="server"
SelectCommand="SELECT * FROM [Employees]"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString1 %>">
</asp:SqlDataSource>

Tag <%-- --%>

Ten znacznik używany jest do komentowania bloku kodu:
<%-- Zakomentowany fragment kodu --%>

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: