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式 。 用于通过Eval
,Xpath
,Bind
或expression式(例如,下拉控件的选定值)进行单向(只读)或双向(可更新)绑定。 通过控件的属性标记将expression式绑定到数据绑定的控件属性,或者作为一个独立的标签,用它的Text
属性值生成一个DataBoundLiteralControl
实例。 expression式由控件的DataBinding
事件处理程序评估。 -
<%#: %>
是一个HTML编码数据绑定expression式 (ASP.NET 4.5中的新增function)。 它结合了<%# %>
和<%: %>
。 -
<%$ %>
是一个ASP.NETexpression式生成器 。 通过服务器标签属性用于控件属性的运行时expression式绑定。 与AppSettings
,ConnectionStrings
或Resources
(或您自己的自定义扩展 ,例如使用代码隐藏属性)一起使用。 这些赋值被添加到生成的类的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播客。