当值以“<”开头时,转发器不绑定

repeater is not binding when the value starts with "<"

我正在使用中继器绑定来自存储过程的数据。它大部分时间都正确绑定数据,但当结果列值以“<”、

开头时它无法按预期工作时,我遇到了一个问题

转发器代码:

<asp:Repeater ID="repeter1" runat="server">
   <HeaderTemplate>
      <table style="table-layout: fixed; width:100%;" >
   </HeaderTemplate>
   <ItemTemplate>
         <tr>
           <th>Column 1</th>
           <th>Column 2</th>
           <th>Column 3</th>
         </tr>
         <tr>
           <td>
              <asp:Label ID="lbl1" runat="server"><%#DataBinder.Eval(Container.DataItem, "column1")%></asp:Label></td>
           <td>
              <asp:Label ID="lbl2" runat="server"><%#DataBinder.Eval(Container.DataItem, "column2")%></asp:Label></td>
           <td>
              <asp:Label ID="lbl3" runat="server"><%#DataBinder.Eval(Container.DataItem, "column3")%></asp:Label></td>
         </tr>
    </ItemTemplate>
    <FooterTemplate>
      </table>
    </FooterTemplate>
</asp:Repeater>

假设如果我们取"column3",当输出值以“<”或“>”这样的开头(看起来像特殊字符)时,它根本不具有约束力。

谁能告诉我如何解决这个问题。

提前致谢!

Server.HtmlEncode() 包裹它,像这样:

<asp:Label ID="lbl3" runat="server"><%# Server.HtmlEncode(Eval("column3").ToString())%></asp:Label>