从网站下载的文件包含网站的 HTML,而不是预期的数据



我正在开发ASP.Net/VB.Net web应用程序,当单击页面上的按钮时,将在该应用程序中生成文件并将其发送到客户端。我有以下代码来做到这一点:-

Dim text_file_name As String = WriteOutputFile()   ' Generate output file
Response.ClearContent()
Response.Clear()
Response.ContentType = "text/plain"
Response.AddHeader("Content-Disposition", "attachment; filename=" + text_file_name + ";")
Response.Flush()
HttpContext.Current.ApplicationInstance.CompleteRequest() 
File.Delete(text_file_name)

这似乎已经完成,并且文件已经正式下载,但打开它时,我发现它包含网页HTML,而不是预期的文件文本。不过,我观察到文件(扩展名.csv)是在Excel中打开的,所以它至少得到了消息的那一部分。

我已经通过省略file.Delete并观察文件在服务器目录中的累积来验证文件是否按预期创建。

在之前的一次尝试中,我有

Response.End()

代替完整的请求;这还生成了一个.csv文件,但其中包含线程异常的详细信息。

有人知道我做错了什么吗?

您将预期的文件名作为头提示发送到浏览器,但实际上并没有发送文件本身。为此,请使用Response.WriteFile()

最新更新