ASP.NET Web控件中的Html编码

时间:2011-08-12 19:56:38

标签: c# asp.net string html-encode

我有一个名为TopicTree.ascx.cs的文件,我试图输出编码字符串,如下所示:

            string subject = reader.IsDBNull(0) ? string.Empty : reader.GetString(0);
            string topic = reader.IsDBNull(1) ? string.Empty : reader.GetString(1);

            subject = subject.Trim();
            topic = topic.Trim();

            string en_subject = Server.HtmlEncode(subject);
            string en_topic = Server.HtmlEncode(topic);

            string output = string.Format("<li><a href=\"searchresults.aspx?type=topics&subject={1}&topic={2}\" style=\"cursor: pointer;\">{0}</a></li>", topic, en_subject, en_topic);

但是当我实际看到屏幕上的输出时,它没有被编码。怎么了?

1 个答案:

答案 0 :(得分:5)

对于链接网址,您需要Server.UrlEncode()而不是Server.HtmlEncode()

但是对于链接显示,您还需要Server.HtmlEncode(topic)这个主题。