【问题标题】:What does mean ":" in <%: and what is the difference to <%=?<%: 中的“:”是什么意思,与 <%= 有什么区别?
【发布时间】:2011-04-03 18:58:33
【问题描述】:

在 ASP.NET MVC 2 中,引入了 &lt;%: 标签来替换 Html 助手的 &lt;%=。但它是什么意思,与前一个有什么区别?我应该什么时候使用&lt;%=,什么时候使用&lt;%:

谢谢

【问题讨论】:

    标签: .net asp.net asp.net-mvc asp.net-mvc-2


    【解决方案1】:

    IIRC,&lt;%: 自动提供 HTML 编码,所以你不需要自己做。

    来自Scott Guthrie's blog post

    在 ASP.NET 4 中,我们引入了一个 新的代码表达式语法 (&lt;%: %&gt;) 呈现像 &lt;%= %&gt; 块这样的输出 做——但它也会自动生成 HTML 在这样做之前对其进行编码。

    阅读博文了解更多详情。

    【讨论】:

      【解决方案2】:

      换句话说,

      &lt;%: myString %&gt;

      相同

      &lt;%= Server.HtmlEncode(myString) %&gt;

      【讨论】:

        【解决方案3】:

        在 ASP.NET 4 中,&lt;%: xyz %&gt; 语法的作用与以前版本中的 &lt;%= Server.HtmlEncode(xyz) %&gt; 相同。它只是一个快捷方式,因为它经常被使用。

        如下Richard所说,它还可以根据是否实现IHtmlString接口来判断一个字符串是否需要编码。

        【讨论】:

        • 如果表达式的类型实现了IHtmlString 接口,它还提供了避免 HTML 编码的功能——因此进行自己编码的类型不需要特殊处理。
        猜你喜欢
        • 2014-08-12
        • 2015-01-01
        • 2019-04-07
        • 2011-08-12
        • 2017-06-11
        • 2018-03-05
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多