Asp.net 从UpdatePanel后面的UserControl向客户端发送文件

Asp.net 从UpdatePanel后面的UserControl向客户端发送文件,asp.net,user-controls,updatepanel,response,Asp.net,User Controls,Updatepanel,Response,我在UpdatePanel中的ASP.Net页面(使用母版页)上有一个用户控件。此控件具有多个功能,包括按钮。该控件工作正常,除了一个链接,当客户端单击该链接时,我试图将文件发送给客户端 控件用一个对象实例化,该对象用于显示、操作,并可选地序列化以传输到客户端。我以前发送过文件,即使是在这个项目中,但不是从UserControl发送的,也不是在UpdatePanel后面发送的。浏览器的行为就好像我甚至没有点击链接一样,尽管我可以一步一步地浏览代码,我知道它正在工作 Response.Clear(

我在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.OutputStream.Write。似乎什么都没用。我想做的事可能吗?或者我需要设计一些方法重定向到另一个页面,然后发送文件

更新:鉴于收到的答复,我已将实现更改为指向另一个URL(ashx文件)以实际发送该文件。这是可行的,但并不理想。关于这一点,我仍然愿意接受其他建议


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

由于各种原因,无法使用更新面板将文件流式传输到客户端。文件流在这种AJAX场景中不起作用。请尝试删除UpdatePanel并验证它是否可以在不使用UpdatePanel的情况下工作,然后使用。有关详细信息。

您必须动态生成文件吗?@MikeC,是的,文件是(必须)动态生成的。您所说的“条件更新”是什么意思?
UpdateMode=“conditional”
,它仅在您指定的条件下触发。包括链接到上面的属性。