来自Web服务的HtmlEncode数据

时间:2011-03-08 19:56:44

标签: c# asp.net .net web-services html-encode

我创建了一个简单的Web服务,用于ajax autocompleteextender控件。它很棒,我差不多完成了,只有一件事困扰着我。当数据库中存在使用html字符的数据时,输出数据对用户不友好。例如“测试;放大器测试”。因此,当您开始在搜索框中键入“Test”时,显示的结果之一是“Test; amp Test”。我想把它显示为Test&无需更改表中的数据即可进行测试。我不确定该怎么做。

我曾尝试对字符串项进行htmlencode,但总是会出现构建错误。

提前感谢您的帮助!

以下是我的网络服务的内容:

 [WebMethod]
    public string[] GetActiveProducts(string prefixText)
        {

        ddconnection = new SqlConnection("Data Source=***;Initial Catalog=***;Connect Timeout=200;Persist Security Info=True;User ID=sa;Password=***;");
        ddconnection.Open();


         int count = 10;
         string sql = "SELECT TOP 10 title FROM Product WHERE active = '1' AND title LIKE @prefixText";
         SqlDataAdapter da = new SqlDataAdapter(sql, ddconnection);
         da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 60).Value = "%" + prefixText + "%"; 
         DataTable dt = new DataTable(); 
         da.Fill(dt); 
         string[] items = new string[dt.Rows.Count];
         int i = 0; 
         foreach (DataRow dr in dt.Rows) 
         { 
          items.SetValue(dr["title"].ToString(),i); 
          i++;
         } 
         return items;
        }

行为举例。 (抱歉要模糊)

Example Image

1 个答案:

答案 0 :(得分:0)

Itemsstring数组HtmlEncode需要string。这就是你得到构建错误的原因。如果您单独编码单个项目,它是否可以解决您的问题?

编辑:如果你做items.SetValue(Server.HtmlEncode(dr["title"].ToString()),i)我想你至少应该让编码工作