0

我在 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 文件中的对象。不用说,这不是一个非常漂亮的解决方案。

4

1 回答 1

0

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

于 2013-03-26T19:19:06.953 回答