Какая разница между <% #%> и <% =%>?

Простите мое незнание ASP, но какая разница?

Ответ 1

Они несколько неофициально называются "укусами пчел". Существует 4 типа:

<%# %> вызывается во время фазы DataBinding.

<%= %> используется для получения значений от кода до уровня пользовательского интерфейса. Предназначена для обратной совместимости с приложениями ASP. Не следует использовать в .NET.

<%@ %> представляет директивы и позволяет устанавливать поведение, не прибегая к коду.

<%: %> (введен в ASP.NET 4) совпадает с %=, но с добавленной функциональностью HtmlEncoding вывода. Целью этого является использование по умолчанию (более %=) для защиты от атак script.

Директивы определяют параметры, которые используемый страницей и пользовательским контролем компиляторы, когда компиляторы обрабатывают Страницы веб-форм ASP.NET(файлы .aspx) и пользовательский контроль (.ascx).

ASP.NET рассматривает любой блок директивы (<% @% > ), который не содержит явное имя директивы как @Page (для страницы) или как @ Директива управления (для пользователя контроль).

@Esteban - добавлена ​​ссылка msdn на директивы. Если вам нужно... больше объяснений, пожалуйста, дайте мне знать.

Ответ 3

Версия # используется во время привязки данных. <% = - просто простой Response.Write

Ответ 4

Не полностью связанный с вопросом, есть другая связанная нотация в asp.net под названием Expression Builder:

<asp:SqlDataSource ... Runat="server"
 ConnectionString="<%$ ConnectionStrings:Northwind %>"
/>

<asp:Literal Runat="server"
  Text="<%$ Resources:MyResources, MyText %>"
/>

и он расширяемый, см. http://msdn.microsoft.com/en-us/magazine/cc163849.aspx#S4

Ответ 5

javascript в .aspx, который использует главную страницу.

var e = document.getElementById('<%= lblDescription.ClientID %>');
e.innerHTML = 'getElementById(\'lblDescription\') will be null';