Простите мое незнание ASP, но какая разница?
Какая разница между <% #%> и <% =%>?
Ответ 1
Они несколько неофициально называются "укусами пчел". Существует 4 типа:
<%# %>
вызывается во время фазы DataBinding.
<%= %>
используется для получения значений от кода до уровня пользовательского интерфейса. Предназначена для обратной совместимости с приложениями ASP. Не следует использовать в .NET.
<%@ %>
представляет директивы и позволяет устанавливать поведение, не прибегая к коду.
<%: %>
(введен в ASP.NET 4) совпадает с %=
, но с добавленной функциональностью HtmlEncoding вывода. Целью этого является использование по умолчанию (более %=
) для защиты от атак script.
Директивы определяют параметры, которые используемый страницей и пользовательским контролем компиляторы, когда компиляторы обрабатывают Страницы веб-форм ASP.NET(файлы .aspx) и пользовательский контроль (.ascx).
ASP.NET рассматривает любой блок директивы (<% @% > ), который не содержит явное имя директивы как @Page (для страницы) или как @ Директива управления (для пользователя контроль).
@Esteban - добавлена ссылка msdn на директивы. Если вам нужно... больше объяснений, пожалуйста, дайте мне знать.
Ответ 2
Как говорит Альберт, все это связано с разбором операторов привязки данных.
Ответ 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';