В ASP.NET, каковы различные способы встроенного кода в .aspx?

Могу ли я получить "когда использовать" для этих и других?

<% %>
<%# EVAL() %>

Спасибо

Ответ 1

Просмотрите Справочник синтаксиса веб-форм в MSDN.

Для основ,

  • <%% > используется для чистых кодовых блоков. Я обычно использую это только для операторов if


        < div class=" authenticated " >
      
        < div class=" unauthenticated " >
      
  • используется для добавления текста в вашу разметку; то есть оно приравнивается к

    < div class= '<% = IsLoggedIn? "authenticated": "unauthenticated" % > ' >

  • <% # Expression% > очень похож на приведенный выше, но он оценивается в сценарии DataBinding. Это означает, что вы можете использовать эти выражения для установки значений элементов управления runat = "server", которые вы не можете использовать с синтаксисом <% =% > . Обычно это используется внутри шаблона для управления привязкой данных, но вы также можете использовать его на своей странице, а затем вызвать Page.DataBind() (или Control.DataBind()), чтобы этот код мог быть оценен.

Другие, упомянутые в связанной статье, менее распространены, хотя, безусловно, также имеют свои возможности.

Ответ 2

Вы также можете использовать

<%= Class.Method() %>

И он напечатает результат, как вы можете сделать в Ruby on Rails.

Ответ 3

Просто хочу добавить, есть также выражение ресурсов

<%$ Resources:resource, welcome%>

и asp.net будут автоматически искать локализованную версию "приветствия" в спутниковых сборках.

Ответ 4

В ASP.NET 4.0 появляется синтаксис <%:% > для записи чего-то, кодированного html.

<%: "<script>alert('Hello XSS')</script>" %>  

Вышеуказанное может быть использовано вместо возвышения.

<%= Html.Encode("<script>alert('Hello XSS')</script>")%>