<%%> в ASP.NET(встроенные блоки кода)
Я понимаю, что они означают в разметке страниц aspx... но я не знаю, какую полную силу они могут использовать или даже имя, чтобы обозначить эти специальные директивы.
Пример:
Могу ли я поставить условные выражения типа ifs или switch
Я видел и использовал их для привязки данных из набора данных, например
Приветствуется любой вход
Ответы
Ответ 1
Это теги блока кода.
И да, вы можете перенести код сервера в эти теги (примеры на С#)
<% if (x = y) {
} else {
}
%>
ИЛИ
<% if (x = y) {%>
Write this HTML
<% } else {%>
Write this html
<% }%>
Существует также
Этот <%=SomeVar %>
который выведет SomeVar в HTML
Ответ 2
Здесь (или здесь - в случае, если он снова перемещается) - это сообщение, которое я нашел и спрятал некоторое время назад, перечисляя все различные встроенные теги на стороне сервера с примерами. Есть семь:
-
<%...%>
запускает обычный код
-
<%=...%>
эквивалентен Response.Write()
-
<%#...%>
используется для выражений привязки данных
-
<%$...%>
возвращает значение выражения и может использоваться в параметрах (примечание: выражения не являются кодом - см. здесь)
-
<%@...%>
предназначен для директив страниц, обычно в верхней части файла ASPX
-
<%--...--%>
для комментариев
-
<%:...%>
совпадает с <%=
, за исключением того, что HTML-кодирует значение
Ответ 3
Документация MSDN вызывает их встроенные блоки кода. Вы можете разместить практически любой код, который вы бы разместили в файлах с кодом, и сервер будет выполнять их перед тем, как показывать свои страницы в браузерах.
Директива - это имя, присвоенное одному конкретному типу кодового блока, наиболее часто встречающееся в верхней части страниц ASP.NET, чтобы дать информацию о компиляторе о ваших страницах ASP.NET. Они ограничены символами <%@
и %>
.
Язык блоков кода тот же, что указан в блоке директивы. Быстрый пример:
<%@ Page Language="C#" %>
<!DOCTYPE html>
<html>
<body>
<p><% string hello = "Hello world!"; Response.Write(hello); %></p>
<ol>
<% for (int i = 1; i <= 5; ++i) { %>
<li><% Response.Write("Item #" + i); %></li>
<% } %>
</ol>
</body>
</html>
Ответ 4
Когда сервер получает запрос на страницу ASPX, он генерирует класс в памяти, который наследует от Page
(или любого другого базового класса, который вы указали). Унаследованный класс переводит "нормальную" разметку в статические вызовы Response.Write()
, <%...%>
в эквивалентный код и <%= someExpression %>
в Response.Write(someExpression)
. Для прежнего кодового блока необходимо принять все допустимые С# (или VB); для последнего встроенный код должен быть одним выражением (что-то, что вы могли бы назначить переменной.
Ответ 5
Да, эти символы указывают серверу, анализируя страницу, что код внутри этих тегов должен интерпретироваться как код, а не HTML.
Итак, чтобы ответить на ваш другой вопрос, вы можете использовать условные обозначения и большинство других функций программирования, поддерживаемых сервером.
Посмотрите краткое руководство по ASP:
http://www.w3schools.com/asp/default.asp