Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HttpHandler在发送文件之前写入重定向页面_C#_Jquery_File_Httphandler_Response.write - Fatal编程技术网

C# HttpHandler在发送文件之前写入重定向页面

C# HttpHandler在发送文件之前写入重定向页面,c#,jquery,file,httphandler,response.write,C#,Jquery,File,Httphandler,Response.write,我在.net上似乎永远找不到任何文档,而官方文档(如果它们正确的话)是一个无望的迷宫 我使用jQuery将一个用户重定向到一个新页面上的HttpHandler,在那里我动态地构建并发送一个html表(并称之为excel文件)。多亏了stackers,我可以毫不延迟地构建和发送文件(即使是大文件) 我想在新页面上告诉用户我正在构建文件,等等,因为文件正在构建和发送 在发送excel标题之前执行context.response.write时,我会得到: Server Error in '/' App

我在.net上似乎永远找不到任何文档,而官方文档(如果它们正确的话)是一个无望的迷宫

我使用jQuery将一个用户重定向到一个新页面上的HttpHandler,在那里我动态地构建并发送一个html表(并称之为excel文件)。多亏了stackers,我可以毫不延迟地构建和发送文件(即使是大文件)

我想在新页面上告诉用户我正在构建文件,等等,因为文件正在构建和发送

在发送excel标题之前执行context.response.write时,我会得到:

Server Error in '/' Application. Server cannot append header after HTTP headers have been sent. “/”应用程序中出现服务器错误。 发送HTTP标头后,服务器无法追加标头。 有什么方法可以实现我想要的吗


非常感谢

你到底想达到什么目的?据我所知,您正在构建某种excel表格并将其发送给客户。我假设,为了让客户端将您的内容识别为excel工作表,您尝试发送一些响应头(例如mime类型)

尽管您必须始终在正文之前发送任何类型的标题,但您将无法在显示给用户的响应流中写入通知,因为用户还会将您的通知保存到excel文件中


因此,我认为您需要一个新的登录页,上面有一个通知,以及某种javascript或元重定向(或超链接或按钮)到强制创建和下载excel的url。

您需要的是一个重定向到下载页的临时登录页

<body>
<div> Your file is getting created... Please wait patiently.
</div>
<script>
    window.location.href = 'http://yoursite.com/documentpage/blah/foo/bar';
</script>
</body>
在临时页面上,你可以有你的消息和一个小脚本来发送给用户下载

<body>
<div> Your file is getting created... Please wait patiently.
</div>
<script>
    window.location.href = 'http://yoursite.com/documentpage/blah/foo/bar';
</script>
</body>

正在创建您的文件。。。请耐心等待。
window.location.href=http://yoursite.com/documentpage/blah/foo/bar';

您是否尝试调用
Response.ClearHeaders()
?现在它显示“发送HTTP头后服务器无法清除头”。非常感谢您的尝试!