C# 下载FireJavaScript之后
我有一个asp.net应用程序,我正在尝试编写一个csv。一旦对话框显示或之后没有任何区别,我只想显示一些消息,说明一切进展顺利。我正在尝试启动一些javascript来简单地更改元素的样式,并进行一些测试以证明下载成功 下载效果很好,我就是这样做的,但我也相信这是导致我出现问题的原因:C# 下载FireJavaScript之后,c#,javascript,jquery,asp.net,C#,Javascript,Jquery,Asp.net,我有一个asp.net应用程序,我正在尝试编写一个csv。一旦对话框显示或之后没有任何区别,我只想显示一些消息,说明一切进展顺利。我正在尝试启动一些javascript来简单地更改元素的样式,并进行一些测试以证明下载成功 下载效果很好,我就是这样做的,但我也相信这是导致我出现问题的原因: Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition"
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "inline; filename=myFile.csv");
Response.Charset = "";
Response.ContentType = "text/csv";
FileInfo fileToDownload = new FileInfo(filename);
Response.WriteFile(filename);
Response.Flush();
HttpContext.Current.ApplicationInstance.CompleteRequest();
Response.End();
System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "s_DisplayLongRunningQueryComplete", "DisplayLongRunningQueryComplete();", true);
如果我将注册启动脚本的最后一行移到它自己的按钮上,就可以说我没有任何问题,它工作正常。我也曾尝试在上述火灾发生之前将其移动到其他位置,但没有成功
有人知道怎么做吗
谢谢。您在这方面有几个问题: 1-您正在下载一个文件,并且在您的响应中,您试图注入javascript代码以与文件缓冲区一起执行
System.Web.UI.ScriptManager.RegisterStartupScript
使用您尝试执行的javascript向响应中添加HTML脚本标记
2-Response.End()
是另一个问题。假设您的响应不是用于文件下载(例如),一旦调用此函数,将不会处理任何其他内容,因此不会调用任何web资源
如何解决:
要解决这个问题,您必须重新构造代码。或许可以尝试以下方法:
- 更改代码以下载文件而不调用脚本
- 通过jQueryAjax从客户端调用下载
- 下载成功后,请调用javascript代码
谢谢您的回复。我添加了response.end,就像我没有它一样,当我返回结果时,除了我的结果之外,我还会得到页面标记。我喜欢将其称为客户端,但我的服务器端方法不是静态的。有没有办法通过jquery调用非静态方法?您可以创建一个ASMX或WCF服务来处理文件下载。