强制IE在新窗口中打开下载

Stu*_*ing 4 c# asp.net webforms

我有网络应用程序,列出存储在其中的文件.

每个项目都有一个超链接,单击该链接时,会强制显示"打开/保存"对话框.

现在,如果我点击一个指向Word文档的链接并选择"打开",它会在它自己的窗口中打开,正如您所期望的那样.但是,如果文件是HTML文件,我选择"打开"选项,它会打开浏览器中的页面[正确],但它会在我用来选择文档[bad]的窗口中打开.

因此,问题是:是否可以强制打开/保存对话框的"打开"选项在新窗口中打开文档?

编辑: 强制打开文档的超链接不仅仅是指向文件的指针(由于多种原因)..NavigateUrl属性包含对JavaScript函数的调用.此函数向应用程序发出Ajax请求,该文档从安全存储中提取文档并将其作为附件呈现给用户的浏览器(Content-Disposition:attachment)

进一步编辑: JavaScript函数只是将Ajax调用回页面.操作的结果是使页面显示在IFrame中.此页面直接写入响应对象,如下所示:

Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", String.Format("attachment;filename=\"{0}\"", FileName));
Response.AddHeader("Content-Length", String.Format("{0}", length));
Response.Flush();
Response.Close();
Run Code Online (Sandbox Code Playgroud)

我想,如果它可以改变的产生的打开/保存对话框的"打开"按钮的动作,这将是我的东西在做这样的代码,这将迫使它.

如果它有所不同,这是一个用C#编写的.Net v4.0应用程序.

我知道打开新窗口的好坏,但这是一个私人应用程序,这是客户想要的.

kin*_*ngo 5

不要让每个链接指向基页内的JS函数,而是尝试这样做......

让每个链接指向一个URL(例如/GetFileContent.aspx?fileid=123)并让该页面在加载文件之前执行必要的逻辑.保持ContextType和响应标头代码不变.

每个链接都会打开一个新窗口,看起来像这样:

<a href="/GetFileContent.aspx?file=123" target="_blank">filename.doc</a>
Run Code Online (Sandbox Code Playgroud)