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

Fei*_*ngo 28 asp.net

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

例:

我可以把条件语句,如ifs或开关

我已经看到并使用它们来绑定数据集中的数据

任何输入都非常感谢

Dan*_*son 53

这里(或者这里 - 如果它再次移动)是我发现的一篇文章,并且在前面列出了所有不同的内联服务器端标签和示例.有七个:

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

  • 该链接显示已死,但[此答案](http://stackoverflow.com/a/3812341/761771)中的[MSDN文章](https://support.microsoft.com/en-us/kb/976112)是非常好. (6认同)
  • 不幸的是,MSDN文章在介绍中列出了两次`<%@ ...%>`,但是没有关于`<%:...%>`服务器标签的任何信息,这就是我的看法for ...这是另一个检查链接:https://weblogs.asp.net/ahmedmoosa/embedded-code-and-inline-server-tags (2认同)

Joh*_*ock 30

这些是代码块标记.

是的,您可以在这些标签中包含服务器端代码(C#中的示例)

<% if (x = y) {
  } else {
  }
%>
Run Code Online (Sandbox Code Playgroud)

要么

<% if (x = y) {%>
   Write this HTML
<%  } else {%>
   Write this html
<%  }%>
Run Code Online (Sandbox Code Playgroud)

还有

<%=SomeVar %>将把SomeVar放到HTML上


Bol*_*ock 9

MSDN文档称它们为嵌入式代码块.您可以在代码隐藏文件中放置几乎任何代码,服务器会在将您的页面提供给浏览器之前执行它们.

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>
Run Code Online (Sandbox Code Playgroud)