2009-06-30 79 views
0

以下摘自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> 
<% } %> 

回答

1

基本上<%%>只是执行代码和doesn't输出任何东西而<%=%>产生某种形式的输出到浏览器的。

例如以<%foreach(var dinner in Model){%>。这条线只意味着我们循环一个集合,如果项目和必须有一些匹配的结束循环<%}%>页面在语法上是正确的。由于这个循环本身没有任何内容发送到浏览器。

使用<%= Html.Encode(dinner.Title)%>向浏览器发送内容。这将采用标题,HtmlEncodes晚餐的内容并将其写入响应流。

相关问题