Search code examples
htmlxmlvb.netformshtml-encode

How to stop automatic HTML Encoding when assigning to HTML Input Fields VB.NET


I have to submit a HTML form to a 3rd party website and one of the hidden fields is an XML string. The XML needs escaping before it is sent to the 3rd party.

However when I add the plain XML to the form field it semi-escapes it for me. So then when I use HTMLEncode myself part of the XML is double-escaped. How do I prevent the automatic escaping that appears to becoming from .NET.

Or even better how else can send the escaped XML via the hidden field.

XML

<systemCode>APP</systemCode>

Basic assigning to hidden input field

&lt;systemCode>APP&lt;/systemCode>

When I HTML Encode it as well

&amp;lt;systemCode&amp;gt;APP&amp;lt;/systemCode&amp;gt;

I can see what's happening - but I don't know how to prevent it?


Solution

  • In the end I used a literal and then HTMLEncoding the XML string before assigned a HTML form variable to the literal text field. A little bit like below:

    portalReq.Text = "<input type=""hidden"" name=""portalReq"" value='" & HTMLENCODE(RequestXML) & "' />"
    

    Not elegant but it's circumventing the problem.