我在页面A.aspx中有一个按钮,点击时处理:
string sURL = "<script type='text/javascript'>window.showModalDialog('B.aspx',window,'');</script>";
Response.Write(sURL);然后在模态对话框B.aspx中有一个LinkButton,点击时,如果直接在按钮事件中处理文件下载,则根本不会弹出下载框,下载的代码如下:
string sFilePath = Server.MapPath("File\\123.txt") ;
System.IO.FileInfo file = new System.IO.FileInfo(sFilePath);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.Charset = "utf-8";
Response.Buffer = true;
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.WriteFile(file.FullName);
Response.Flush();
Response.End();
下载的代码在非模态对话框中测试通过。我再尝试点击LinkButton,打开C.aspx页面,在C页面中处理下载代码,结果还是弹出来晃一下就没了,偶尔会弹出下载对话框,但是文件名却是C.aspx,打开C页面的代码如下:
Response.Write("<script type='text/javascript'>window.open('C.aspx?FileName=" + Path.GetFileName(sFilePath) + "');</script>");在网上找了很久,都没有找到合适的解决方法,所以到这里来咨询,希望得到高手的回答,谢谢。