【问题标题】:view template code tags - asp.net mvc - regd查看模板代码标签 - asp.net mvc - regd
【发布时间】:2010-09-14 23:10:42
【问题描述】:

和 在 asp.net MVC 视图引擎的上下文中有什么区别。在 MVC2 书中给出如下:

  • 代码块在视图模板呈现时执行代码。
  • 代码块执行其中包含的代码,然后将结果呈现到模板的输出流。

什么时候用第一个,什么时候用第二个?

【问题讨论】:

    标签: asp.net-mvc templates view


    【解决方案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】:
      猜你喜欢
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      相关资源
      最近更新 更多