Встроенные скрипты в ASP.NET
Я хочу изучить расширенные и базовые вещи о встроенных сценариях ASP.NET, такие как
<img src="<%= Page.ResolveUrl("~")%>Images/Logo.gif"/>
или же
<asp:Label ID="lblDesc" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Description")%>'></asp:Label>
И так далее...
И какая разница между <%%> и <% #%> и такими вещами?
Где я могу найти от базовой до продвинутой реализации этих обычаев?
2 ответа
Проверьте эту статью для специфики различных встроенных опций тега.
Из статьи:
<%...%> - самый основной встроенный тег, в основном запускает обычный код:
<% =...%> - используется для небольших порций информации, обычно из объектов и отдельных фрагментов информации, таких как одна строка или переменная int:
<% #...%> - используется для выражения привязки; такие как Eval и Bind, чаще всего встречающиеся в элементах управления данными, таких как GridView, Repeater и т. д.:
<% $...%> - используется для выражений, а не кода; часто встречается с источниками данных:
<% @...%> - это для синтаксиса директив; в основном то, что вы видите в верхней части ваших aspx-страниц, например, контроль регистрации и объявление страницы:
<% -...%> - это комментарий на стороне сервера, который никто не хочет видеть без доступа к коду:
В общем, <%#..%>
используется для предварительной обработки шаблона, например, при привязке данных, когда имена свойств объектов не известны во время компиляции. Если, например, у вас есть объект Repeater ASP.NET, и вы привязываете к нему список объектов, эта нотация используется для предварительного заполнения значений, которые не могут быть установлены ни в одной точке, кроме как в течение жизненного цикла привязки данных.
Другие обозначения, <%..%>
а также <%=..%>
являются более стандартными, и вы увидите их гораздо чаще, чем другой синтаксис, который обсуждался ранее, особенно если вы используете что-то вроде ASP.NET MVC вместо ASP.NET Web Forms. Синтаксис <%..%>
выполняет произвольный встроенный сценарий, и ничего более, но позволяет писать целые блоки кода.NET, такие как операторы if, циклы while, циклы и т. д. Синтаксис <%=..%>
является синтаксисом оценки и записи и является грубым эквивалентом <% Response.Write([..].ToString()) %>
, То есть, <%= myVal %>
такой же как <% Response.Write(myVal.ToString()) %>
Эти синтаксисы являются базовыми знаниями ASP.NET.