2011-11-20 107 views
15

所以在.NET中,我们有.......NET“代码块块”?

<%= 

<%: (new to .NET 4 - syntactic sugar for HTML encoding) 

<%# 

<%@ 

究竟这些是什么?

还有更多吗?是否有详尽的清单以及它们在哪里?很难知道甚至可以搜索什么 - 当我发现<%时,我甚至都没有听说过“代码块块”这个词。

回答

9

这些<%@是指令。有关详尽的清单和文档,请参阅MSDN

使用时,指令可以在任何地方在.aspx位于或.ASCX 文件,但标准的做法是将它们包括在 文件开头。每个指令都可以包含特定于该指令的一个或多个属性(配对值为 )。

<%是脚本块。这里是MSDN

嵌入代码块一个很好的说明是,在页面的 呈现阶段执行服务器代码。块中的代码可以在当前页面类中执行编程 语句和调用函数。

<%#块通常在绑定控件中使用。请参阅此短文article了解更多信息。

2

我不知道如果这些web窗体标签有一个适当的总称,但他们都应该在ASP.NET Page Syntax覆盖。

还有另外一个,这不是在名单上,ASP.NET Expressions

<%$ expressionPrefix: expressionValue %> 
8

他们被称为代码掘金。它们提供关于如何处理这些符号中的声明(<%%>)ASP.NET框架指令。在我知道它的名字之前,是的,在社区中询问它有点困难。不知道一个“详尽的名单中,但也有一对夫妇更比你虽然规定。以下是其他代码块的列表及其用法和示例示例。

符号 - 名称 - 说明 - 如(格式)


<% - 标准代码金块 - 表示下面的语句是C#语句。将不得不遵循C#语法规则。例如。

<% string[] cities = { ""London"", ""New York"", ""Paris"" }; 
string myCity = cities[new Random().Next(cities.Length)]; 
Response.Write(myCity);%> 

<%= --Content代码块 - 标准CN类似,不同之处返回的结果被直接插入响应于所述浏览器,而不必使用Response.Write。例如。

<%=textBox.Text%> 

(不推荐,包括html注入攻击的风险。如果文本框上的输入类似于“< button type = submit > Submit</button >”,它将在页面上添加一个按钮。当然会有验证,但希望点是清楚的。)


<%: --Encoded代码块--Similar到<%=,但响应HTML编码。例如。 Name is <%:textBox.Text%> (无论输入的文本框,它显示出来。如果输入的是一样的东西“< button type = submit > Submit</button >”,输出将是“名称是<button type = submit> Submit</button>”。


<%# - 数据绑定代码熔核--Denotes数据绑定代码块,用来指当前的数据对象仅可用与像中继器等

<%#: --Encoded数据绑定数据绑定控件 - 表示的编码数据绑定代码块,其中数据绑定值被编码,例如:

<asp:Repeater ItemType = ""System.String"" SelectMethod = ""GetCities"" runat = ""server"> 
<ItemTemplate> 
<li > <%# Item % > </li> 
</ItemTemplate> 
</asp:Repeater> 

(如编码(<%#:)时,它会显示文字无解释,推荐。)”


<%$ --property代码块 - 用以指配置值,例如那些定义在Web.config中。

<asp:Literal Text = " < %$ AppSettings: cityMessage % > " runat = "server" /> 

(检索从配置文件cityMessage键的值。)


<%@ --Page指令 - 这是用来配置Web窗体(或控制或母版页,这取决于在那种指令。例如,

<%@ Page.. <%@ Master 

所有上述信息和电子商务xamples来自Adam Freeman的Pro ASP .NET 4.5书,第12章。优秀的书imo。