Литералы Xml в VB.Net предотвращают выход

Я экспериментирую с использованием Vml.Net Xml Literals в качестве системы шаблонов для генерации HTML. Что мне интересно, есть ли способ контролировать побег. Например, если у меня есть код, подобный следующему

Dim param1Value as String = "test"
Dim html = <div>
               <a id="myLink" href="<%= "/mysite/myfile?param1=" + param1Value + "&param2=test2" %>"
           </div>

Это создаст ссылку с закодированными амперсандами XML (&amp;). В настоящее время я просто не экранирую их при преобразовании xmlElement в строку. Я предполагаю, что это мой единственный вариант, так как все остальное создает недопустимый XML, но мне было интересно, есть ли способ указать, что XML Literal является необработанным значением и не требует Xml Escaped.

1 ответ

Решение

Несколько лет назад я создал ASP.NET MVC View Engine с использованием литералов VB.NET XML, в которых мне пришлось решать именно эту проблему. Не было никакого способа сказать часть литералов Xml vb.net игнорировать & персонажи. Мой конкретный сценарий пытался включить объекты HTML (например, &copy;) внутри литералов Xml.

То, что я в конечном итоге использовал <amp /> во всех местах, где мне нужно было & символ в XML-литерале, а затем просто делает .Replace("<amp />", "&") при рендеринге HTML. Увидеть Render метод в VbView.vb.

Другие вопросы по тегам