繁体   English   中英

查看模板代码标签 - asp.net mvc - regd

[英]view template code tags - asp.net mvc - regd

在asp.net MVC视图引擎的上下文中,<%%>和<%:%>之间有什么区别。 在MVC2书中,它给出如下:

  • <%%>代码块在View模板呈现时执行代码。
  • <%:%>代码块执行其中包含的代码,然后将结果呈现给模板的输出流。

何时使用第一个以及何时使用第二个?

这本书几乎是正确的:

<% %>代码块在View模板呈现时执行代码。 因此,如果您调用函数<div><% MyFunc() %></div> ,则在打开标记后,如果呈现div但在关闭标记之前,将在渲染时执行该函数。 该函数可以执行您想要的任何操作,检查某些条件并通过异常失败,设置一些变量,使用HttpContext.CurrentContext.Response.Write (或只是webforms中的Response.Write )写入响应流。

<%: %>代码块执行其中包含的代码,然后将结果html编码呈现给模板的输出流。 即它与<% HttpServerUtility.HtmlEncode(HttpContext.CurrentContext.Response.Write(MyFunc()))%>

<%= %>代码块执行其中包含的代码,然后将没有html编码的结果呈现给模板的输出流。 即它与<% HttpContext.CurrentContext.Response.Write(MyFunc())%>

--- MyFunc()在最后两种情况下应该返回一个字符串。 它也可以是对ViewModel某些属性或任何其他求值为string的代码块的引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM