我在ASP.NET代码隐藏文件中有这段代码:
Response.Write("<someting>")
但它不起作用。如果我删除<
标记分隔符,则会将内容写入页面。
我的问题是:如何从代码隐藏中将XML字符串写入页面?
答案 0 :(得分:4)
您需要对其进行HTML编码:
Response.Write(HttpUtility.HtmlEncode("<someting>"));
但是如果您正在编写XML,则应首先使用XDocument,XmlWriter或XmlDocument来构建它,以确保它有效,然后将其写入响应。
答案 1 :(得分:3)
你正在做的事情已经很好了。您的<someting>
标记未显示在页面上,因为浏览器需要HTML,因此它会将<someting>
解释为不理解的HTML标记,并且不显示任何内容。如果你查看页面的来源,你应该看到标签。
您的XMLHttpRequest(XHR)请求应该能够毫无问题地将此数据作为XML读取,即使它没有直接显示在浏览器中。但是,如另一个答案中所述,理想情况下,您应该将内容类型更改为text/xml
,以便客户端知道所期望的数据格式。
答案 2 :(得分:2)
如果要输出XML,则应首先按如下方式设置内容类型:
Response.ContentType = "text/xml";
此外,最好使用Handler(.ashx),而不是页面(.aspx),因为它会删除您不需要的各种额外页面/表单处理。
然后随意使用Response.Write生成您的页面,例如:
Response.Write("<something>foobar</something>");
由于它是XML,因此您需要使用XML查看器查看生成的输出。如果确保内容类型正确,Internet Explorer将显示格式良好的XML作为树结构。
您还应该确保XML内容以:
开头<?xml version="1.0"?>