A_V*_*Var 5 asp.net-mvc templates view
在asp.net MVC视图引擎的上下文中,<%%>和<%:%>之间有什么区别.在MVC2书中,它给出如下:
何时使用第一个以及何时使用第二个?
这本书几乎是正确的:
<% %>代码块在View模板呈现时执行代码.因此,如果您调用函数<div><% MyFunc() %></div>,则在打开标记后,如果呈现div但在关闭标记之前,将在渲染时执行该函数.该函数可以执行您想要的任何操作,检查某些条件并使用异常失败,设置一些变量,使用HttpContext.CurrentContext.Response.Write(或仅Response.Write在webforms中)写入响应流.
<%: %>代码块执行其中包含的代码,然后将结果html编码呈现给模板的输出流.即它是一样的<% HttpServerUtility.HtmlEncode(HttpContext.CurrentContext.Response.Write(MyFunc()))%>
<%= %>代码块执行其中包含的代码,然后将没有html编码的结果呈现给模板的输出流.即它是一样的<% HttpContext.CurrentContext.Response.Write(MyFunc())%>
--- MyFunc()在最后两种情况下应该返回一个字符串.它也可以是对某个属性ViewModel或任何其他代码块的引用,该代码块的计算结果为string.
| 归档时间: |
|
| 查看次数: |
952 次 |
| 最近记录: |