В чем разница между <% =%> и <% #%>? - PullRequest
7 голосов
/ 21 октября 2011

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

Сейчас я знаю, что вы можете поставитькусок кода между <% #%> и вам нужно вызвать метод Page.DataBind () для его применения, я думаю, что так работает <% #%>.Но что значит <% =%>?Когда я должен использовать это?

Ответы [ 3 ]

10 голосов
/ 21 октября 2011

Основные различия:

Выражения <%= %> оцениваются во время рендеринга.

Выражения <%# %> оцениваются во время DataBind() и вообще не оцениваются, еслиDataBind() не вызывается.

<%# %> выражения могут использоваться как свойства в элементах управления на стороне сервера.

<%= %> выражения не могут и используются для ссылки на свойства или поля.

Например:

<%= Response.Write() %>

<ItemTemplate>
      <%# DataBinder.Eval("Title") %>
</ItemTemplate>

Более подробное объяснение MSDN можно найти здесь: В чем разница между <% =%> и <% #%>

Надеюсь, это поможет.

4 голосов
/ 21 октября 2011
  • <%= %> используется для ссылки на свойства / поля. Это похоже на Response.Write «встроенный» на странице в этой позиции.

  • <%# %> используется для привязки данных с помощью Eval / Bind. Взято из MSDN

Метод Eval оценивает выражения данных с поздней привязкой в ​​шаблонах элементов управления с привязкой к данным, таких как GridView, DetailsView, и элементы управления FormView. Во время выполнения метод Eval вызывает Eval метод объекта DataBinder,

ASP.NET 4.0 представляет <%: something %>, что похоже на <%= %>, но экранирует содержимое (поэтому он преобразует < в &lt; и т. Д.)

В итоге вы можете использовать <% #%> только в некоторых элементах управления (тех, которые наследуются от BaseDataBoundControl)

Здесь есть статья http://msdn.microsoft.com/en-us/library/aa479321.aspx, в которой объясняется, как выполняется привязка данных в .NET

Я добавлю ссылку со списком всех специальных встроенных тегов Asp.net: http://naspinski.net/post/inline-aspnet-tags-sorting-them-all-out-(3c25242c-3c253d2c-3c252c-3c252c-etc).aspx (не содержит <%: %>)

1 голос
/ 21 октября 2011
<%= ... %>

Используется для небольших порций информации, обычно из объектов и отдельных фрагментов информации, таких как одна строка или переменная int:

The Date is now <%= DateTime.Now.ToShortDateString() %>
The value of string1 is <%= string1 %> 

MSDN: отображение из ASP.NET

<%# .. %>

Используется для связывания выражений; такие как Eval и Bind, чаще всего встречающиеся в элементах управления данными, таких как GridView, Repeater и т. д.: * 10101

<asp:Repeater ID="rptMeetings" DataSourceID="meetings" runat="server">
    <ItemTemplate>
        <%# Eval("MeetingName") %>
    </ItemTemplate>
</asp:Repeater>

MSDN: обзор выражений привязки данных

Интернет-ресурс: Встроенные теги asp.net ... сортировка их всех

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...