ASP.NET“特殊”标签

时间:2009-03-16 06:27:47

标签: asp.net syntax tags

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

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

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

5 个答案:

答案 0 :(得分:321)

官方名称为“server-side scripting delimiters”或“ASP.NET inline expressions”。 Visual Studio 2008语法突出显示设置对话框调用这些“HTML服务器端脚本”。微软的人在他们的博客中称他们为“代码块”。

  • <%@ %>Directive for ASP.NET Web Pages。用于页面和控件以配置页面/控件编译器设置(<%@ Control Inherits="MyParentControl" %>)。
    • <%@ %>也是Application Directive。用于为global.asax指定特定于应用程序的设置。与页面指令不同,因为它仅使用不同的标记集。
  • <% %>Code Render Block (for inline code)Embedded Code Blocks的4种形式之一。用于将服务器端代码包含到生成的类的Render() method<% x = x + 1; %>)中。格式:单行/多行或多重链接(例如if/then/else穿插html)但不能用于声明函数。
  • <%= %>Code Render Block (for inline expressions)。用作<%Response.Write(value)%>
  • 的简写
  • <%: %>(非正式地称为“Html Encoding Code Block”)与之前相同,但输出是HTML编码的。
  • <%# %>Data-binding Expression。用于通过EvalXpathBind或表达式(例如,下拉控件的选定值)进行单向(只读)或双向(可更新)绑定。通过控件的属性标记将表达式绑定到数据绑定控件属性,或者作为单独的标记将DataBoundLiteralControl实例与其Text属性的值绑定。表达式由控件的DataBinding事件处理程序进行评估。
  • <%#: %>HTML Encoded Data-Binding Expression(ASP.NET 4.5中的新增功能)。它结合了<%# %><%: %>
  • 的功能
  • <%$ %>ASP.NET Expression Builder。用于通过服务器标记属性控制属性的运行时表达式绑定。与AppSettingsConnectionStringsResources(或your own custom extension一起使用,例如,使用代码隐藏属性)。这些分配将添加到生成的类的OnInit()方法中。
  • <%-- --%>Server-Side Comment。用于从编译中排除内容(如果在代码隐藏中引用注释掉的控件,则会生成错误)。与html注释不同,内容将包含在输出中。
  • <!-- #Include ... -->Server-Side Include Directive。用于将文件的内容插入页面,控件或全局文件中。在用户控件过度使用且无法使用母版页的情况下很有用。

还有一个Code Declaration Block,即最终的嵌入式代码块形式。

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

这用于包含从ASP.NET标记生成的类的其他成员(方法等)。这些仅提供"primarily to preserve backward compatibility with older ASP technology",不建议使用。

答案 1 :(得分:7)

您的姓名问题没有答案,但MSDN "ASP.NET Page Syntax"页面非常好(或者说,这是顶级页面;其下的页面提供了更多信息)。

编辑:我以前认为<%# ... %>未包含在列表中,但当然是在数据绑定表达式下。卫生署。

答案 2 :(得分:6)

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

它没有提到Page level指令,但是在快速入门的其他地方详述了哪个IIRC。

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

答案 3 :(得分:6)

微软家伙有时称他们为“掘金”或“代码掘金”。

答案 4 :(得分:0)

我也听过这些叫做“V stings”的内容,包括StackOverflow Podcast。