【问题标题】:How to display raw XML string in browser如何在浏览器中显示原始 XML 字符串
【发布时间】:2011-09-16 13:44:53
【问题描述】:

我有一个我真正想在屏幕上显示的 XML 字符串。

我尝试过使用 Html.Raw(myXMLString) 但它显示时没有节点名称,我尝试过不使用 Html.Raw 输出但结果相同

如何在浏览器中显示原始 XML 字符串?

【问题讨论】:

  • 您想将其显示为内容还是仅显示为 html 页面的一部分?
  • xml 放在这里
    ,或 或 <textarea> 等</textarea>

标签: asp.net html xml asp.net-mvc asp.net-mvc-3


【解决方案1】:

使用

@myXMLString

这应该可以解决问题吗?

否则,将 HTTP 内容类型标头设置为 text/plain 并发送 raw。我想你的标题目前是text/html,因此你需要转义它。

【讨论】:

  • myXmlString 正在通过 AJAX/JSON 填充
  • Fiddler 中的 AJAX/JSON 请求是什么?以及调试器监视中的字符串的值是多少?
  • 我无法向您展示 XML 的敏感信息,但我知道它是正确的,并且 XML 正在发送到浏览器,因为当我查看源代码时,它就在那里
  • 您发回的标头有问题....查看您的内容类型响应标头...它是什么?
  • 页面为text/html,AJAX响应为application/json;
【解决方案2】:

你试过&lt;code&gt;&lt;/code&gt;标签吗?

【讨论】:

    【解决方案3】:

    XML 是您想要显示的唯一内容吗?改变内容类型怎么样?:

    Page.Request.ContentType = "text/xml";
    

    如果您只是想在页面上显示一部分 XML,我会尝试将其呈现为 &lt;pre&gt; 标记。

    我不确定这个,但你也可以使用Literal,模式设置为PassThrough

    【讨论】:

    • 问题是我不知道什么时候有 XML,因为我只有一个带有行和列的 DataTable
    • 查看第二个建议,将其呈现为 &lt;pre&gt; 元素
    • 似乎不起作用。我遇到的问题是我只是循环输出数据的所有行和列,所以我不希望所有内容都使用 pre 标记
    • 添加一些逻辑来确定单元格内容是否为 XML,并从那里获取。
    【解决方案4】:

    我最终在发回之前使用了 Html.Encode

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-30
      • 2014-08-26
      • 2020-01-15
      • 2011-03-23
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多