0

我正在尝试编写一个需要保存文件(在 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 编写。

谁能知道我该如何绕过这个?我怎样才能让它工作?

谢谢你,加迪姆。

4

1 回答 1

1

问题是您的内容类型是“text/csv”,因此服务器永远不会将您的启动脚本发送到浏览器。即使这样做了,浏览器也会将响应处理为 csv 文件,而不是 html,因此脚本永远不会被执行。

这样做的方法是在您的启动脚本中包含一个重定向,如下所示:

alert("aaa");
window.loocation.href = "http:\\url-to-return-csv";

url 可以指向您现有的页面,并带有一个参数告诉您重新调整 csv,或者您可以编写一个 http 处理程序来返回 csv

于 2010-07-17T14:07:17.623 回答