ASP.NET“特殊”标签

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

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

我似乎无法弄清楚这些概念或众所周知的名称,所以我无法search更多的信息。 作为一个奖励,任何人都可以给我一个快速破解所有可能的“特殊标签”和他们每个人做什么(或指向我的资源)?

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

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

还有一个代码声明块 ,最终的embedded代码块表单。

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

这是用来包含额外的成员(方法等)从ASP.NET标记生成的类。 这些只是提供“主要是为了保持与旧的ASP技术向后兼容” ,不build议使用。

我总是发现这个QuickStart页面非常有用,每当我对服务器端语法有疑问的时候。 它详细说明了8种不同的标记风格,并提供了每个标记的示例,并解释了优缺点。

它没有提到页面级指令,但是,IIRC在快速入门中的其他地方有详细介绍。

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

没有回答你的名字的问题,但MSDN “ASP.NET页面语法”页面是相当不错的(或者说,这是顶级的网页,下面的网页给了更多的信息)。

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

微软有时候把他们称为“金块”或“代码块”。

我也听说过这些名为“V蜇”,包括在StackOverflow播客。