ASP.NET“特殊”标签

问题描述 投票:0回答:5

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

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

我似乎无法弄清楚这些的概念或众所周知的名称,所以我在搜索更多信息时遇到了麻烦。 作为奖励,任何人都可以给我一个所有可能的“特殊标签”的快速概要以及它们每个标签的作用(或为我指出一个资源)?

asp.net syntax tags
5个回答
382
投票

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

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

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

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

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


7
投票

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

编辑:我之前认为

<%# ... %>
未包含在列表中,但当然它包含在数据绑定表达式下。呵呵。


6
投票

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

不过,它没有提及页面级别指令,IIRC 在快速入门的其他地方详细介绍了该指令。

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


6
投票

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


0
投票

我还听过这些被称为“V stings”的说法,包括在 StackOverflow 播客上。

© www.soinside.com 2019 - 2024. All rights reserved.