这可能很荒谬,但我有一个C#函数,它通过AJAX将一个字符串返回给JavaScript。字符串的第一部分是HTML,第二部分是XML。该字符串将类似于:
"""
<b>Some HTML</b> - this entire string is returned from the server.
<i>I have no control over it</i>.
<br/>
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
</catalog>
</xml>
"""
然后我有一个函数创建一个jQuery UI模式对话框,其中包含此字符串作为主文本。它正确地将第一部分呈现为HTML,但第二部分(XML)是不可见的
我需要的是,就像现在一样呈现HTML,但也将XML呈现为明文字符串(如上例所示)。理想情况下,我想要一个服务器端解决方案,但我猜它必须是客户端。
我会使用像new XMLSerializer()).serializeToString(combinedString)
这样的东西,但也不会删除HTML标签吗?
注意:我提前不知道HTML文字。我不知道它是否会被换行符,<p>
标签,<div>
或其他任何内容分开,因此我无法完全按照{{{{{{ 1}}。
答案 0 :(得分:1)
在将结果返回给客户端之前,您应该对服务器端的XML部分进行HTML编码。使用HttpUtility.HtmlEncode函数完成此任务。
有关详细信息:
https://msdn.microsoft.com/en-us/library/system.web.httputility.htmlencode(v=vs.110).aspx