下载XML客户端,首先从Session获取数据

时间:2011-08-19 19:59:09

标签: c# javascript asp.net

我的目标是让用户能够下载当前存储在Session中的一些信息。会话I中有多个键/值对希望用户下载为一个XML文件。

我正在使用的控件暴露了客户端“onClick”事件。我打算调用PageMethod从Session中提取我想要的数据,并将该数据返回给客户端。

我在MVC中看到了一个非常干净的实现,我想知道在ASP.NET AJAX中是否可以实现这种干净的实现。如果没有,我想知道最好的路线是什么。

在MVC / JavaScript中我看到类似这样的内容:

location.href = "../WorkOrders/Export/" + workOrderID;

public ActionResult Export(int id)
{
    WorkOrderPdfExporter exporter = new WorkOrderPdfExporter();
    byte[] buffer = exporter.Export(id);
    return File(buffer, "application/pdf", String.Format("workorder#{0}.pdf", id));
}

这个Export方法返回一个FileContentResult,它是一个MVC的东西。我想知道ASP.NET AJAX中是否存在这样的东西,并且数据类型是否适合返回页面方法。

如果没有,我该怎么办?我正在考虑创建一个字典,将相关的会话对象粘贴到这个字典中,将其序列化为XML(我实现了一个Serializable Dictionary类),然后尝试返回该XML进行下载?

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

您可以直接写信至HttpResponse.OutputStream - 您也需要设置正确的ContentType

OutputStream的代码示例相当冗长(主要处理动态创建的图像),但如果忽略这些部分,您将拥有一个基本功能,需要对您的使用进行微小修改。