VB.Net中的Xml Literals可防止转义

时间:2014-10-30 15:31:07

标签: .net xml vb.net escaping xml-literals

我正在尝试使用VB.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 个答案:

答案 0 :(得分:1)

多年前,我创建了一个ASP.NET MVC View Engine using VB.NET XML Literals,我必须解决这个问题。没有办法告诉vb.net的Xml文字部分忽略&个字符。我的特殊情况是尝试在Xml文字中包含HTML实体(如&copy;)。

我最终得到的是在XML Literal中需要<amp />字符的所有地方使用&,然后在呈现HTML时只执行.Replace("<amp />", "&")。请参阅VbView.vb中的Render方法。