查看模板代码标签 - 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的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net MVC 视图之公用代码

ASP.Net MVC 布局页 模板页 使用方法详细说明

使用 ASP.net、C#、MVC 在模板中生成 pdf

ASP.NET MVC 5 默认模板的JS和CSS 是怎么加载的?

ASP.NET MVC Route详解

ASP.NET MVC Route详解