我已经在经典ASP和ASP.NET中编程,我在服务器端代码的标记中看到了不同的标签。
我最近遇到了一个good blog on MSDN,它超越了以下区别:
<%=
(百分比和等号)和<%#
(百分号和哈希/磅/ octothorpe)(<%#
仅在数据绑定中进行评估,<%=
在渲染时进行评估),但我也看到了:
<%$
(百分号和美元符号)和<%@
(百分号和符号)。我相信<%@
会加载程序集之类的东西,也许<%$
会从配置文件加载东西?我不太确定。
我只是想知道是否有人可以为我澄清所有这些并且可能解释为什么创建这么多看似有类似目的的不同标签很重要?
答案 0 :(得分:286)
<% %>
- 适用于inline code(特别是逻辑流程)<%$ %>
- 适用于evaluating expressions(与资源变量类似)<%@ %>
- 适用于Page directives,注册程序集,导入名称空间等。<%= %>
- 是Response.Write
的简称(讨论here)<%# %>
- 用于data binding expressions。<%: %>
- 是Response.Write(Server.HTMLEncode()) ASP.net 4.0 + <%#: %>
- 用于data binding expressions并自动进行HTMLEncoded。<%-- --%>
- 适用于server-side comments 答案 1 :(得分:5)
你已经覆盖了其中的两个(&lt;%#仅在数据绑定时评估,&lt;%=在渲染时评估),而“<%@
”的答案是它的编译器指令(即。,就像你在编译器的命令行上所做的那样)。
我不知道“<%$
”。