【问题标题】:<%: %> Syntax for HTML Encoding in a repeater<%: %> 转发器中 HTML 编码的语法
【发布时间】:2011-08-17 16:20:21
【问题描述】:

从 .NET 4 开始,可以使用 语法对文本进行 HTML 编码。

在转发器中,我使用以下语法来显示数据

<%# DataBinder.Eval(Container.DataItem, "fieldlabel")%>

我知道在转发器中对输出进行编码的唯一方法是使用“Server.HtmlDecode”。是否可以在转发器中使用新的 仅与数据绑定结合使用,以便我可以删除丑陋的 HtlmDecode 语法。或者扩展方法是我提高可读性的唯一选择?

【问题讨论】:

    标签: asp.net repeater html-encode


    【解决方案1】:

    ASP.NET 4.5 this is possible 开始使用新的&lt;%#: %&gt; 表示法

    【讨论】:

      【解决方案2】:

      有可能,但需要更多工作:

      请使用以下语法

      <asp:Literal ID="fieldlabel" runat="server" Mode="Encode" Text='<%#Eval("fieldlabel")%>"></asp:Literal>
      

      【讨论】:

        【解决方案3】:

        不,这是不可能的。 &lt;%# 允许评估绑定数据,但它使用基本的 &lt;% 块。

        您唯一能做的就是通过将代码包装在Html.Encode 中来重新创建&lt;%:

        例如:

        <%# Html.Encode(DataBinder.Eval(Container.DataItem, "fieldlabel")) %> 
        

        &lt;%: 是一个快捷方式,我想并不是每个块使用的变体都被捕获到包含一个shortbut。 MS 可能不想通过创建大量不同的符号来捕捉各种用途而使问题复杂化,并且只支持最常见的用途。

        【讨论】:

        • 请注意,从.NET 4.5 this is possible 开始使用新的&lt;%#: %&gt; 表示法
        • @freefaller 感谢更新,我猜他们在将近 5 年后终于解决了这个问题 :)
        【解决方案4】:

        基于这个问题,我认为答案是否定的。

        Meaning of the various symbols in .aspx page of asp.net

        【讨论】:

        • 他们需要一个 标签...用于解码。
        猜你喜欢
        • 1970-01-01
        • 2013-04-20
        • 2015-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-26
        相关资源
        最近更新 更多