Had some trouble today with *.Attributes.Add and using an ampersand &.
The problem is Attributes.Add and here's what I found:
System.Web.HttpUtility.HtmlAttributeEncode is called on any text added via Attributes.Add. HtmlAttributeEncode turns & into
&and turns double quotes (") into "