【发布时间】:2017-01-13 02:29:59
【问题描述】:
我正在将 XML 数据写入用户浏览器以供下载。 下面是代码
受保护的无效 WriteXmlToPageDownload(XElement XmlCustomerData) {
try
{
if (XmlCustomerData != null)
{
XDocument x = new XDocument(new XDeclaration("1.0", "UTF-8", "yes"), new XElement(XmlCustomerData));
StringBuilder builder = new StringBuilder();
StringWriter writer = new StringWriter(builder);
x.Save(writer);
writer.Flush();
HttpContext context = HttpContext.Current;
context.Response.Write(builder.ToString().Replace("encoding=\"utf-16\"", "encoding=\"utf-8\""));
context.Response.ContentType = "application/xml";
string filename = "CustomerDetails ";
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + ".xml");
context.Response.AppendHeader("Connection", "close");
context.Response.End();
}
}
catch (Exception ex)
{
Log("Exception in CustomerData" + ex.Message.ToString(), this);
}
}
XmlCustomerData 包含由 XElement 创建的 XML(一些业务逻辑...) 以下是所需的 XML 示例
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Customers>
<Customer>
<deatils name="ABC">
<id="1">
</details>
<deatils name="XYZ">
<id="2">
</details>
...
</Customer>
</Customers>
并且 XmlCustomerData 包含保持完整的业务逻辑
<Customers>...</Customers>
问题是。 1.XML被创建,也没有被下载到用户浏览器 2.我得到了例外 “无法计算表达式,因为代码已优化或本机框架位于调用堆栈顶部。”
我的要求是将 XML 文件下载到用户的浏览器。 请让我知道我在做什么错误或更好的方法
提前致谢。
【问题讨论】:
标签: c# xml download httpcontext xelement