gpt4 book ai didi

c# - 文件下载到浏览器后如何修改页面?

转载 作者:太空狗 更新时间:2023-10-30 01:11:41 25 4
gpt4 key购买 nike

我有一个简单的 C# ASP.NET 应用程序,它生成一个 Excel 文件并使用 Response.WriteFile() 函数将其发送到浏览器。

我想在点击提交按钮后禁用它并在屏幕上显示一条消息等待几分钟,因为一些文件可能需要一段时间才能生成。这很好用,但我不知道如何在文件下载完成后重新激活按钮,甚至刷新页面。页面保持禁用状态,“请稍候...”即使完成后也是如此。

我认为之后使用额外的 javascript 命令进行同步 AJAX 调用会起作用,但虽然文件确实生成了,但它从未发送到浏览器。我也尝试过使用 iframe 控件,但找不到任何方法来可靠地知道新文件何时完成加载。

在此先感谢任何可以提供帮助的人!

更新:我在 http://code.msdn.microsoft.com/AjaxFileDownload 找到了可能的解决方案这非常适合下载已经存在的文件,但是当我调用生成文件并以 Response.End() 结束的页面时,“完成下载”事件永远不会触发。

最佳答案

我这样做的方法是让页面生成一个 token ,然后将所述 token 连同生成 excel 文件的请求一起发送到服务器。

当服务器获得 token 时,它会将其放入数据库中的表中,一旦文件完成服务,它就会删除 token 。

现在,当所有这一切都在发生时,在页面上有一个进程定期(查看 JS 计时器)询问服务器(异步调用) token 是否存在于数据库中。当服务器最终告诉页面“否”时,您就知道可以重新启用该页面并隐藏“请稍候...”消息。

关于c# - 文件下载到浏览器后如何修改页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1930795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com