ASP.NET/MVC语法

Lia*_*iam 6 asp.net asp.net-mvc-4

可能重复:
ASP.NET"特殊"标记

我试图了解MVC应用程序.它有多个用户控件.在这些控件中我看到如下语法:
<%= ...some text ... %>

我也看到了:
<%: ...some text ... %>
<@ ...some text ... %>
<% ...some text ... %>
<%# ...some text ... %>

我可以看到它使我能够在control/javascript中编写代码,但我不完全理解%,%:,%=和%#之间的区别.

他们什么时候"执行/评估"?

如果<%= ... =>在用户控件中或用Javascript函数中的单引号括起来有区别吗?

我甚至不确定我的头衔是否正确,谷歌搜索时我也没有得到任何东西.因此,我会对解释感到高兴,不仅仅对文档链接感到满意,而且对正确的术语感到满意.

Dar*_*rov 4

假设您在 ASP.NET MVC 中使用 WebForms 视图引擎,您需要了解以下内容:

  • <%= %>- 输出响应输入的评估结果。例如<%= "<div>foo</div>" %>输出<div>foo</div>
  • <%: %>- 与第一个相同,只是它对输出进行 HTML 编码。这样<%: "<div>foo</div>" %>就会输出&lt;div&gt;foo&lt;/div&gt;.
  • <% %>- 评估服务器上的表达式,但不在响应中输出任何内容。例如,您可以声明一个变量:<% string foo = "foo bar"; %>稍后您可以使用该变量通过前面的 2 种方法之一进行输出
  • <%@ %>- 这仅用于定义视图的页面或控制指令。它还允许您将命名空间和程序集纳入给定视图的范围内。例如,<%@ Import Namespace="System.IO" %>会将System.IO名称空间纳入范围。

就目前<%#而言,这在 ASP.NET MVC 中并没有使用。它是一个称为数据绑定的概念,仅适用于经典的 WebForms 应用程序。