如何在 asp.net 中的另存为文件功能中结合警报弹出窗口?
Posted
技术标签:
【中文标题】如何在 asp.net 中的另存为文件功能中结合警报弹出窗口?【英文标题】:How do I combine alert popup in save as file function in asp.net? 【发布时间】:2010-07-17 13:27:31 【问题描述】:我正在尝试编写一个需要保存文件(在 csv 中)并具有条件的函数。 是这样的:
如果文件小到 1MB,那么我想在 javascript 中弹出一个警报,然后继续保存为文件命令。
我所做的是:
if(...)
else
ClientScript.RegisterStartupScriptBlock(...alert('aaa')...);
Response.ContentType = "text/csv";
Response.AppendHeader("Content-Disposition","attachment; filename=file.csv");
Response.TransmitFile("FILE.csv");
Response.End();
另存为工作正常。但在其他情况下不会弹出警报。
我试过RegisterStartupScript
。我尝试了很多选择。但似乎response.end
阻止了客户端脚本的发生。
我正在用 c# asp.net(启用 ajax 的网站,但未使用)、visual studio 2005 编写。
谁能知道我该如何绕过这个?我怎样才能让它发挥作用?
谢谢你, 加迪姆。
【问题讨论】:
【参考方案1】:问题在于您的内容类型是“text/csv”,因此服务器永远不会将您的启动脚本发送到浏览器。即使这样做了,浏览器也会将响应处理为 csv 文件,而不是 html,因此脚本永远不会被执行。
这样做的方法是在您的启动脚本中包含一个重定向,如下所示:
alert("aaa");
window.loocation.href = "http:\\url-to-return-csv";
url 可以指向您现有的页面,并带有一个参数告诉您重新调整 csv,或者您可以编写一个 http 处理程序来返回 csv
【讨论】:
以上是关于如何在 asp.net 中的另存为文件功能中结合警报弹出窗口?的主要内容,如果未能解决你的问题,请参考以下文章