ASP。“净special"标签

“特殊”ASP的官方名称是什么?NET标签是这样的:

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

我似乎不知道这些概念上或众所周知的名称,所以我在搜索更多信息时遇到了麻烦。作为额外的奖励,谁能给我一个所有可能的“特殊标签”的快速概述,以及每个标签的功能(或指向资源)?

92190 次浏览

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

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

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

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

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

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

    这用于将额外的成员(方法等)包含到从ASP生成的类中。净的标记。这些只提供过"主要是为了保持与旧ASP技术的向后兼容性",不建议使用。

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

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

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

微软的人有时称之为“鸡块”或“代码鸡块”。

我也听说过这些叫做“V刺”,包括在StackOverflow Podcast上。