这个问题在这里已经有了答案:
9年前关闭。
Possible Duplicate:
ASP.NET “special” tags
我正在尝试了解 MVC 应用程序。它有多个用户控件。在这些控件中,我看到如下语法:
<%= ...some text ... %>
我也看过:
<%: ...some text ... %>
<@ ...some text ... %>
<% ...some text ... %>
<%# ...some text ... %>
我可以看到它使我能够在控件/javascript 中编写代码,但我不完全理解 %、%:、%= 和 %# 之间的区别。
他们什么时候“执行/评估”?
如果
<%= ... =>
有区别吗?是在用户控件中还是在 Javascript 函数中用单引号括起来?我什至不确定我的标题是否正确,谷歌搜索时我什么也没得到。
因此,我会很高兴得到解释,对文档链接和正确的术语感到满意。
最佳答案
假设您在 ASP.NET MVC 中使用 WebForms View 引擎,您需要知道的内容如下:
<%= %>
- 将输入的评估结果输出到响应中。例如 <%= "<div>foo</div>" %>
输出 <div>foo</div>
. <%: %>
- 与第一个相同,只是它对输出进行 HTML 编码。因此<%: "<div>foo</div>" %>
将输出 <div>foo</div>
. <% %>
- 评估服务器上的表达式,但在响应中不输出任何内容。例如,您可以声明一个变量:<% string foo = "foo bar"; %>
您可以稍后使用前两种方法之一输出 <%@ %>
- 这仅用于定义 View 的 Page 或 Control 指令。它还允许您将命名空间和程序集带入给定 View 的范围内。例如 <%@ Import Namespace="System.IO" %>
将带来System.IO
命名空间进入范围。 至于
<%#
就这一点而言,这在 ASP.NET MVC 中没有使用。它是一个称为数据绑定(bind)的概念,仅适用于经典的 WebForms 应用程序。
关于ASP.NET/MVC 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14525811/