Подтвердить что ты не робот

<%%> в ASP.NET(встроенные блоки кода)

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

Пример:

Могу ли я поставить условные выражения типа ifs или switch

Я видел и использовал их для привязки данных из набора данных, например

Приветствуется любой вход

4b9b3361

Ответ 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