Response.WriteFile编写网页源而不是文本文件

时间:2013-02-06 15:36:54

标签: c# response.write

当我尝试从共享位置获取文本文件时,当用户从Web浏览器打开它时,它不显示文本文件内容,并且显示页面源。怎么避免呢?我究竟做错了什么?这是我的代码。但当我在我的本地运行时,我能够看到文本文件数据,我也得到了页面源。如果有任何错误,我的英语很难过。

 GridViewRow rw = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
 LinkButton lnkTxtFile = (LinkButton)rw.FindControl("lnkTxtFile");
 string strFilename = lnkTxtFile.Text.Replace("/","\\");
 System.IO.FileInfo targetFile = new System.IO.FileInfo(strFilename);
 Response.Clear();
 Response.AddHeader("Content-Disposition", "attachment; filename=" + targetFile.Name);
 Response.ContentType = "application/octet-stream";
 Response.WriteFile(targetFile.FullName);
 HttpContext.Current.ApplicationInstance.CompleteRequest();

2 个答案:

答案 0 :(得分:1)

HttpContext.Current.ApplicationInstance.CompleteRequest();更改为Response.End();

我怀疑CompleteRequest()正在呈现页面的其余部分。 Response.End()关闭响应流并立即将其返回给客户端。

答案 1 :(得分:0)

尝试替换

HttpContext.Current.ApplicationInstance.CompleteRequest();

Response.End();