以下内容摘自Professional ASP.NET MVC 1.0第56页。
当我们更仔细地查看Details.aspx模板时,我们会发现它包含静态HTML以及嵌入式渲染代码。 < %%>代码块在视图模板呈现时执行代码,并且<%=%>代码块执行其中包含的代码,然后将结果呈现给模板的输出流。
该声明本质上是有道理的,但我无法清楚地向团队成员阐明其含义。更准确地解释究竟发生了什么是有用的。
本章后面的用法示例:
<% foreach (var dinner in Model) { %>
<li>
<%= Html.Encode(dinner.Title) %>
on
<%= Html.Encode(dinner.EventDate.ToShortDateString())%>
@
<%= Html.Encode(dinner.EventDate.ToShortTimeString())%>
</li>
<% } %>
答案 0 :(得分:1)
基本上&lt; %%&gt;只是执行代码并且在&lt;%=%&gt;时输出任何内容为浏览器生成某种形式的输出。
例如,取&lt;%foreach(模型中的var晚餐){%&gt;。这一行只是意味着我们循环一个集合,如果项目必须有一些匹配的结束循环&lt;%}%&gt;使页面在语法上正确。由于这个循环本身没有任何东西发送到浏览器。
使用&lt;%= Html.Encode(dinner.Title)%&gt;完成向浏览器发送内容。这将获取晚餐标题,HtmlEncodes的内容,并将其写入响应流。