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