我只是想知道,我知道的唯一区别是<%=符号会生成任何可能的html标记,这些标记包含在您计划显示的字符串中,而<%:只显示字符串的完整外观。如果有人能帮助我,我会非常感激。
答案 0 :(得分:2)
两个内联代码标签基本相同,唯一的区别是<%:%>将自动使用编码。所以这个:
<%: myText %>
相当于:
<%= Html.Encode(myText) %>
建议使用前者。
答案 1 :(得分:2)
来自Scott Gu - New <%: %> Syntax for HTML Encoding Output in ASP.NET 4 (and ASP.NET MVC 2)
的非常好的解释摘录:
ASP.NET应用程序(尤其是那些使用ASP.NET MVC的应用程序)通常依赖于使用&lt;%=%&gt;用于呈现输出的code-nugget表达式。今天的开发人员经常在这些表达式中使用Server.HtmlEncode()或HttpUtility.Encode()辅助方法,在输出呈现之前对输出进行HTML编码。这可以使用如下代码完成:
<div>
<%= Server.HtmlEncode(Model.Content) %>
</div>
虽然这种方法很好,但它有两个缺点:
有点冗长 开发人员经常忘记调用Server.HtmlEncode方法 - 并且没有简单的方法来验证其在应用程序中的使用情况
新&lt;%:%&gt;代码块语法
在ASP.NET 4中,我们引入了一种新的代码表达式语法(&lt;%:%&gt;),它呈现类似于&lt;%=%&gt;的输出。块做 - 但在这之前也会自动对HTML进行编码。这消除了像我们在上面的例子中那样明确地对HTML编码内容的需要。相反,您可以在下面编写更简洁的代码来完成完全相同的事情:
<div>
<%: Model.Content %>
</div>
答案 2 :(得分:0)
<%:
是HtmlEncoded。 Code Nuggets for asp.net
在ASP.NET 4中,我们引入了一种新的代码表达式语法(<%: %>)
,其呈现类似于&lt;%=%&gt;的输出。块做 - 但在这之前也会自动对HTML进行编码。
答案 3 :(得分:0)
来自Scott Gu博客:
使用ASP.NET 4,我们引入了一种新的代码表达式语法(&lt;%: %&gt;)呈现类似&lt;%=%&gt;的输出块做 - 但也是 在执行此操作之前自动对HTML进行编码。这消除了 需要像我们在示例中那样显式地对HTML进行编码 以上。相反,您可以在下面编写更简洁的代码 完成同样的事情: