查看模板代码标签 - asp.net mvc - regd
Posted
技术标签:
【中文标题】查看模板代码标签 - asp.net mvc - regd【英文标题】:view template code tags - asp.net mvc - regd 【发布时间】:2010-09-14 23:10:42 【问题描述】:和 在 asp.net MVC 视图引擎的上下文中有什么区别。在 MVC2 书中给出如下:
代码块在视图模板呈现时执行代码。 代码块执行其中包含的代码,然后将结果呈现到模板的输出流。什么时候用第一个,什么时候用第二个?
【问题讨论】:
【参考方案1】:这本书几乎是正确的:
<% %>
代码块在视图模板呈现时执行代码。因此,如果您调用函数<div><% MyFunc() %></div>
,如果渲染了 div,但在渲染结束标签之前,您的函数将在打开标签之后的渲染时间执行。该函数可以做任何你想做的事情,检查一些条件并因异常而失败,设置一些变量,使用HttpContext.CurrentContext.Response.Write
(或在网络表单中使用Response.Write
)写入响应流。
<%: %>
代码块执行其中包含的代码,然后将结果 html 编码 渲染到模板的输出流。即它与<% HttpServerUtility.htmlEncode(HttpContext.CurrentContext.Response.Write(MyFunc()))%>
相同
<%= %>
代码块执行其中包含的代码,然后将结果无需 html 编码渲染到模板的输出流。即它与<% HttpContext.CurrentContext.Response.Write(MyFunc())%>
相同
---MyFunc() 在最后两种情况下应该返回一个字符串。它也可以是对ViewModel
的某些属性或任何其他计算为字符串的代码块的引用。
【讨论】:
【参考方案2】:<%: %>
会对结果进行 html 编码。
http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx
【讨论】:
以上是关于查看模板代码标签 - asp.net mvc - regd的主要内容,如果未能解决你的问题,请参考以下文章