前台:
<asp:Repeater ID="Repeater1" runat="server" ...
   ....          
<ItemTemplate>
    <tr>
    <td >
     <%# Eval("ReceiveText")%>
     </td>
后台:
           var data = GetList();
            Repeater1.DataSource = data.EntityList;
            Repeater1.DataBind();从数据库读取的数据中有一条:     >''><script>alter(5)</script>
导致IE9页面运行出错。
已经写好转义的方法ReplaceHtmlTag()。去掉<>/\''等。现在的问题是,在哪使用这个方法?还是我在Repeater里面加一个事件解决?事件解决的话又该如何?
求解决详细代码。ASP.NET HTML 转义 注入

解决方案 »

  1.   

    试了,不行。现在是EVAL("ReceiveText")这里直接出错,我将整体作为一个参数传过去,没用。
      

  2.   

    .cs中        /// <summary>
            /// 字符串截取方法
            /// </summary>
            /// <param name="obj"></param>
            /// <param name="len"></param>
            /// <returns></returns>
            public static string subStr(string obj, int len)
            {
                if (obj.Length > len)
                    return obj.ToString().Substring(0, len) + "...";
                else
                    return obj.ToString();
            }在.aspx中<%=subStr(newsOneList[i].NewsTitle, 30)%>你的向这样 <asp:Label ID="IsDisplay" runat="server" Text='<%# Isdisplay(Convert.ToBoolean(Eval("IsDisplay")))%>'></asp:Label>
      

  3.   

    把EVAL("ReceiveText")强制转换成你要传递的类型
      

  4.   

    <%#GetReceiveText(Convert.ToString(Eval("ReceiveText")))%>
    试了,无效
      

  5.   

    这个问题好像出的不是很多。现在用EVAL的少吧