Литералы Xml в VB.Net предотвращают выход
Я экспериментирую с использованием Vml.Net Xml Literals в качестве системы шаблонов для генерации HTML. Что мне интересно, есть ли способ контролировать побег. Например, если у меня есть код, подобный следующему
Dim param1Value as String = "test"
Dim html = <div>
<a id="myLink" href="<%= "/mysite/myfile?param1=" + param1Value + "¶m2=test2" %>"
</div>
Это создаст ссылку с закодированными амперсандами XML (&
). В настоящее время я просто не экранирую их при преобразовании xmlElement в строку. Я предполагаю, что это мой единственный вариант, так как все остальное создает недопустимый XML, но мне было интересно, есть ли способ указать, что XML Literal является необработанным значением и не требует Xml Escaped.
1 ответ
Несколько лет назад я создал ASP.NET MVC View Engine с использованием литералов VB.NET XML, в которых мне пришлось решать именно эту проблему. Не было никакого способа сказать часть литералов Xml vb.net
игнорировать &
персонажи. Мой конкретный сценарий пытался включить объекты HTML (например, ©
) внутри литералов Xml.
То, что я в конечном итоге использовал <amp />
во всех местах, где мне нужно было &
символ в XML-литерале, а затем просто делает .Replace("<amp />", "&")
при рендеринге HTML. Увидеть Render
метод в VbView.vb.