从UpdatePanel后面的UserControl发送文件到客户端

时间:2013-03-26 19:12:40

标签: asp.net user-controls updatepanel response

我在UpdatePanel内的ASP.Net页面(使用母版页)上有一个用户控件。该控件具有多种功能,包括按钮。控件工作正常,除了一个链接,我试图在他们点击它时向客户端发送文件。

控件使用一个对象进行实例化,该对象用于显示,操作,并可选择序列化以传输到客户端。我以前发过文件,甚至在这个项目中,但不是来自UserControl,而不是在UpdatePanel后面。浏览器就像我甚至没有点击链接一样,即使我可以单步执行代码并且我知道它正在运行。

Response.Clear()
Response.AppendHeader("content-disposition", "attachment; filename=assignment.ics")
Response.ContentType = "text/xml"

'serialization code goes here

Response.Write(seralizedObject)
Response.Flush()
Response.End()

我尝试了Response.Close。我也尝试过使用Response.OutputStream.Write。似乎没有什么工作。我正在努力做甚么可能吗?或者我是否需要设计一些方法来重定向到另一个页面然后发送文件?

更新:鉴于收到的答案,我已将我的实现更改为指向实际发送文件的另一个URL(ashx文件)。它有效,但并不理想。我仍然对这个问题提出其他建议。

如果UpdatePanel不起作用,我仍然希望“内部”将对象发送到另一个可以发送文件的文件(如ashx文件)。现在我正在使用URL查询字符串发送足够的信息来重建我的ashx文件中的对象。不用说,这不是一个非常漂亮的解决方案。

1 个答案:

答案 0 :(得分:0)

由于各种原因,您无法使用更新面板将文件流式传输到客户端。文件流在此AJAX方案中不起作用。尝试删除UpdatePanel并验证它是否正常工作,然后使用conditional updatingSee this了解更多信息。