【问题标题】:How does an 'if' statement work in a markup file?'if' 语句如何在标记文件中工作?
【发布时间】:2014-05-25 10:38:01
【问题描述】:

following 有效。但为什么?

<% if (condition) { %> some html <% } %>

我希望它要么没有效果,要么只是抛出一个异常,因为每个部分都不是有效的 C#,也不是全部。

【问题讨论】:

标签: html asp.net .net


【解决方案1】:

当页面被编译时,标记被转换成将 HTML 输出到响应流的命令。基本上代码变成了:

Response.Write("The HTML code before");
if (condition) {
  Response.Write(" some html ");
}
Response.Write("The HTML code after");

混合代码和标记 (&lt;% int i = %&gt;3&lt;% ;%&gt;) 的示例将变为:

Response.Write("The HTML code before");
int i =
Response.Write("3");
;
Response.Write("The HTML code after");

【讨论】:

  • 谢谢。这是我读过的关于这个主题的最清晰的解释。
  • 为什么投反对票?如果你不解释你认为错误的地方是什么,它就无法改进答案。
【解决方案2】:

&lt;% %&gt;

is for inclusion of server-side code to the Render() method 
(<% x = x + 1; %>) of the generated class.

当编译器(asp.net 服务器端的.net 框架编译器)执行此代码时,它会执行其中指定的操作。生成的输出被渲染成简单的 HTML 表单,可以渲染到网络浏览器上(如果以 eval 为前缀,你会看到)。

它们基本上用于让您在表示逻辑 (aspx) 中编写服务器端执行代码。例如:会话、调试打印、用户名等,尽管 Visual Studio IDE 使用自己的 UI 控件可以很好地替代它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多