< %%>在ASP.NET(嵌入式代码块)中

时间:2010-11-21 21:20:00

标签: asp.net

我理解这些在aspx页面的标记中有什么意义......但我不知道它们可以用于它们的全部功能,甚至不知道这些特殊指令的名称。

示例:

我可以放置条件语句,如ifs或switch

我已经看过并使用它们来绑定数据集中的数据,例如

非常感谢任何输入

5 个答案:

答案 0 :(得分:50)

Hereor here - in case it moves again)是我发现的一篇帖子,前一段时间用一些例子列出所有不同的内联服务器端标签。有七个:

  1. <%...%>运行普通代码
  2. <%=...%>相当于Response.Write()
  3. <%#...%>用于数据绑定表达式
  4. <%$...%>返回表达式的值,可以在参数中使用(注意:表达式不是代码 - 请参阅here
  5. <%@...%>用于页面指令,通常位于ASPX文件的顶部
  6. <%--...--%>用于评论
  7. <%:...%><%=相同,只是对HTML进行了HTML编码

答案 1 :(得分:28)

这些是代码块标记。

是的,你可以将服务器端代码包装在这些标签中(C#中的例子)

<% if (x = y) {
  } else {
  }
%>

OR

<% if (x = y) {%>
   Write this HTML
<%  } else {%>
   Write this html
<%  }%>

还有

这个<%=SomeVar %>将SomeVar放到HTML

答案 2 :(得分:8)

MSDN文档称它们为embedded code blocks。您可以将几乎所有代码放在代码隐藏文件中,服务器会在将您的页面提供给浏览器之前执行它们。

Directive是一种特定类型代码块的名称,这是ASP.NET页面顶部最常见的代码块,用于为编译器提供有关ASP.NET页面的信息。它们由<%@%>分隔。

代码块的语言与指令块中指定的语言相同。一个简单的例子:

<%@ Page Language="C#" %>
<!DOCTYPE html>
<html>
  <body>
    <p><% string hello = "Hello world!"; Response.Write(hello); %></p>
    <ol>
    <% for (int i = 1; i <= 5; ++i) { %>
        <li><% Response.Write("Item #" + i); %></li>
    <% } %>
    </ol>
  </body>
</html>

答案 3 :(得分:0)

当服务器收到对ASPX页面的请求时,它会生成一个内存类,该类继承自Page(或您指定的任何基类)。继承的类将“正常”标记转换为静态Response.Write()调用,将<%...%>转换为等效代码,将<%= someExpression %>转换为Response.Write(someExpression)。对于前一个代码块,应接受任何有效的C#(或VB);对于后者,嵌入代码必须是单个表达式(您可以将其分配给变量。

答案 4 :(得分:-1)

是的,这些符号表示解析页面的服务器应该将这些标记中的代码解释为代码而不是HTML。

因此,要回答您的其他问题,您可以使用条件和服务器支持的大多数其他编程功能。

查看ASP快速指南: http://www.w3schools.com/asp/default.asp