我有一个ASP.NET页面,我在这里生成一个Excel电子表格,并在响应(content-disposition header)中发送它。该部分效果很好,但我有一个永远不会重新启用的按钮,因为原始页面不是响应的一部分。如何在HTTP响应中发送文件和页面?
下面是我使用的功能:
Public Shared Sub WriteToResponse(ByVal theWorkBook As Workbook, ByVal FileName As String, ByVal resp As HttpResponse)
Dim theStream As New System.IO.MemoryStream()
theWorkBook.Save(theStream)
Dim byteArr As Byte() = DirectCast(Array.CreateInstance(GetType(Byte), theStream.Length), Byte())
theStream.Position = 0
theStream.Read(byteArr, 0, CInt(theStream.Length))
theStream.Close()
resp.Clear()
resp.AddHeader("content-disposition", "attachment; filename=" & FileName)
resp.BinaryWrite(byteArr)
resp.End()
End Sub
我试着不清除响应并使用替代的AddHeader AppendHeader,但反应仍然只包含文件。
我错过了什么?我需要使用不同的标题吗?我发现这个unanswered question on the ASP.NET forums;听起来像我的问题。