Asp.net 如何从模式窗口发送文件下载?

Asp.net 如何从模式窗口发送文件下载?,asp.net,download,Asp.net,Download,目前,此代码在常规浏览器窗口中运行良好: if (readerObj.Read()) { filename = readerObj["TRANATTACHMENTNAME"].ToString(); fileBytes = (byte[])readerObj["TRANATTACHMENT"]; Response.Clear(); Response.ContentType="application/octet-st

目前,此代码在常规浏览器窗口中运行良好:

    if (readerObj.Read())
    {
        filename = readerObj["TRANATTACHMENTNAME"].ToString();
        fileBytes = (byte[])readerObj["TRANATTACHMENT"];

        Response.Clear();
        Response.ContentType="application/octet-stream";
        Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
        Response.BinaryWrite(fileBytes);
        Response.Flush();
        Response.End();

        dbConnectorObj.Connection.Close();
        dbConnectorObj = null;

        return true;

    }
不幸的是,这个窗口需要是模态的(我正在修改一个已经存在的应用程序)。当我以模式运行窗口时,没有文件下载对话框

ASP.NET 2.0


有什么想法吗?

我会改变你这样做的方式,让文件通过HTTP处理程序成为服务器。然后,您可以将句柄链接到传递相关数据的url,以提取正确的文件或执行身份验证,不管怎样,对话框都会弹出。

我将更改您执行此操作的方式,并通过HTTP处理程序将文件发送到服务器。然后,您只需将句柄链接到传递相关数据的url,即可提取正确的文件或执行身份验证,对话框将弹出。

谢谢。按照您的建议,我创建了该文件并使用了ClientScript.RegisterStartupScript(this.GetType(),“scrDownloadFile”,“@”window.open('TempFiles/“+filename+”),true);而不是响应对象。@Kyle JV,您在IIS上解除锁定后尝试过它吗?它在IIS上不起作用。它在本地ASP.NET开发服务器上工作,而不是在IIS上。谢谢。按照您的建议,我创建了该文件并使用了ClientScript.RegisterStartupScript(this.GetType(),“scrDownloadFile”,“@”window.open('TempFiles/“+filename+”),true);而不是响应对象。@Kyle JV,您在IIS上解除锁定后尝试过它吗?它在IIS上不起作用。它在本地ASP.NET开发服务器上工作,而不是在IIS上工作。