ASP.NET“特殊”标签


232

像这样的“特殊” ASP.NET标记的正式名称是什么:

<%# %>
<%= %>
<%@ %>
<%$ %>

我似乎无法弄清楚这些的概念名称或知名名称,因此我在搜索更多信息时遇到了麻烦。额外的好处是,任何人都可以给我快速列出所有可能的“特殊标签”以及它们各自的作用(或为我提供资源)吗?


1
如果它们包含代码,Microsoft也称它们为嵌入式代码块
罗伯特·哈维

Answers:


350

正式名称是“ 服务器端脚本分隔符 ”或“ ASP.NET内联表达式 ”。Visual Studio 2008语法突出显示设置对话框将这些称为“ HTML服务器端脚本”。微软的人在他们的博客中称它们为“代码块”。

  • <%@ %>ASP.NET网页指令。用于页面和控件以配置页面/控件编译器设置(<%@ Control Inherits="MyParentControl" %>)。
    • <%@ %>也是应用程序指令。用于为global.asax指定应用程序特定的设置。与page指令不同,因为它仅使用不同的标记集。
  • <% %>是一个代码渲染块(用于内联代码)嵌入式代码块的4种形式之一。用于将服务器端代码包含到所生成类的Render()方法<% x = x + 1; %>)中。格式:单行/多行或多链接(例如,if/then/else插入html),但不能用于声明函数。
  • <%= %>是一个代码渲染块(用于内联表达式)。用作速记<%Response.Write(value)%>
  • <%: %>(非正式地称为“ Html编码代码块 ”)与以前的相同,但是输出是HTML编码的。
  • <%# %>是一个数据绑定表达式。用于单向(只读)或双向(更新)的结合通过EvalXpathBind,或的表达式(例如,下拉式控制的所选择的值)。通过控件的属性标记将表达式绑定到数据绑定的控件属性,或作为单独的标记将表达式绑定到具有属性DataBoundLiteralControl值的实例Text。表达式由DataBinding控件的事件处理程序评估。
  • <%#: %>HTML编码的数据绑定表达式(ASP.NET 4.5中的新增功能)。它结合了<%# %>和的功能<%: %>
  • <%$ %>ASP.NET Expression Builder。用于通过服务器标签属性为控件属性进行运行时表达式绑定。与AppSettingsConnectionStrings或一起使用Resources(或您自己的自定义扩展名,例如,使用代码隐藏属性)。这些分配将添加到OnInit()生成的类的方法中。
  • <%-- --%>服务器端Comment。用于从编译中排除内容(因此,如果在后面的代码中引用注释掉的控件,则将产生错误)。与html注释不同,内容不会包含在输出中。
  • <!-- #Include ... -->服务器端包含指令。用于将文件内容插入页面,控件或全局文件中。在用户控件过大且无法使用母版页时很有用。

还有一个代码声明块,即最终的嵌入式代码块形式。

<script runat="server">
bool IsTrue() {
  return false;
}
</script>

这用于将其他成员(方法等)包括到从ASP.NET标记生成的类中。仅“主要是为了保持与较旧ASP技术的向后兼容性”才提供这些功能,不建议使用这些功能。


1
我相信有一个<%$ ...%>与appsettings / connection字符串进行数据绑定。
sisve

我还没听说过 你有资源吗?
Sedat Kapanoglu,2009年

3
它们称为ASP.NET表达式。请参阅msdn.microsoft.com/en-us/library/d5bd1tad.aspx
elo80ka,2009年

7

您的姓名问题没有答案,但是MSDN的“ ASP.NET页面语法”页面非常好(或者,这是顶层页面;它下面的页面提供了更多信息)。

编辑:我以前曾认为它<%# ... %>不包括在列表中,但它当然是在数据绑定表达式下。h


该链接当前不起作用。您必须先选择.NET Framework版本。
2013年

1
@Sam:啊,谢谢-我认为由于某些原因,.NET 4.5发行时已经退休了。我已经编辑了链接。
乔恩·斯基特

1
我以为Jon Skeet不会进行网络开发...!
CodeArtist 2014年

6

每当我对服务器端语法有疑问时,我总是会发现此“快速入门”页面非常有用。它详细介绍了8种不同的标记样式,并提供了每种标记样式的说明性示例,并说明了优缺点。

不过,它没有提到Page级指令,而IIRC在快速入门的其他地方有详细介绍。

当然,这与ASP.NET 2.0有关。


这是仅链接的答案。请内联相关信息。
zzzzBov

1
链接是陈旧的:-(
罗兰


6

微软的人有时称它们为“块”或“代码块”。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.