HtmlEncode and HtmlDecode are also built into the Server objects in ASP.NET. These methods have no advantages over the HttpUtility methods. They are equivalent.
using System;
using System.IO;
using System.Web;
using System.Web.UI;
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
// This could mess up HTML.
string text =
"you & me > them";
// 1
// Replace > with >
string htmlEncoded = Server.HtmlEncode(text);
// 2
// Now has the > again.
string original = Server.HtmlDecode(htmlEncoded);
// 3
// This is how you can access the Server in any class.
string alsoEncoded = HttpContext.Current.Server.HtmlEncode(text);
// 4
StringWriter stringWriter = new StringWriter();
using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
{
// Write a DIV with encoded text.
writer.RenderBeginTag(HtmlTextWriterTag.Div);
writer.WriteEncodedText(text);
writer.RenderEndTag();
}
string html = stringWriter.ToString();
// 5
}
}
1: Before encoding has occurred.
String: you & me > them
2: The string is encoded for HTML.
String: you & me > them
3: String is converted back from HTML.
String: you & me > them
4: The string is encoded for HTML again.
String: you & me > them
5: The HTML string is written into a DIV.
Text: <div>you & me > them</div>