这些“特殊”的ASP.NET标记的官方名称是什么,例如:
<%# %>
<%= %>
<%@ %>
<%$ %>
我似乎无法确定这些标签的概念或通用名称,因此我在搜索更多信息时遇到了问题。 另外,有人可以给我一个所有可能的“特殊标签”的快速概述以及每个标签的作用(或者指向资源)吗?
<%@ %>
是ASP.NET Web Pages指令,用于配置页面和控件的编译器设置(例如:<%@ Control Inherits="MyParentControl" %>
)。<%@ %>
也是应用程序指令,用于为global.asax指定特定于应用程序的设置。与页面指令不同,它只使用不同的标记集。<% %>
是代码渲染块(用于内联代码)之一,是4种嵌入式代码块之一。用于将服务器端代码包含到生成类的Render()
方法中(例如:<% x = x + 1; %>
)。格式:单/多行或多个链接(例如:if/then/else
穿插html),但不能用于声明函数。<%= %>
是代码渲染块(用于内联表达式),用作<%Response.Write(value)%>
的简写形式。<%: %>
(非官方的“HTML编码代码块”)与上一个相同,但输出已进行HTML编码。<%# %>
是数据绑定表达式,用于单向(只读)或双向(可更新)绑定,通过Eval
、Xpath
、Bind
或表达式(例如下拉控件的选定值)。通过控件的属性标记将表达式绑定到数据绑定控件属性,或作为单独的标记使用,生成一个具有其Text
属性上的值的DataBoundLiteralControl
实例。表达式由控件的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技术的向后兼容性",不建议使用。
对于你的姓名问题,我没有答案,但是MSDN "ASP.NET页面语法"页面非常不错(或者说,那是顶级页面;其下面的页面提供更多信息)。
编辑:我之前认为<%# ... %>
没有包含在列表中,但当然它是在数据绑定表达式下。天啊。
我一直觉得这个快速入门页面非常有用,每当我对服务器端语法有疑问时。它详细介绍了8种不同的标记样式,并提供了每种样式的说明性示例,以及解释了优缺点。
但是它没有提到页面级别指令,我IRC在快速入门的其他地方有详细介绍。
当然,这与ASP.NET 2.0相关。
我也听说过这些被称为“V字符串”,包括在StackOverflow Podcast中。