Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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# BinaryWrite()适用于一个页面,而不是另一个页面_C#_Asp.net_Download_Httpresponse - Fatal编程技术网

C# BinaryWrite()适用于一个页面,而不是另一个页面

C# BinaryWrite()适用于一个页面,而不是另一个页面,c#,asp.net,download,httpresponse,C#,Asp.net,Download,Httpresponse,我在类库中有一个帮助函数,用于创建和提供自定义PDF: byte[] file = GetPdfBytesFromHtmlString( htmlCodeToConvert ); System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; response.Clear(); response.AddHeader( "Content-Type", "binary/octet-stream" ); resp

我在类库中有一个帮助函数,用于创建和提供自定义PDF:

byte[] file = GetPdfBytesFromHtmlString( htmlCodeToConvert );

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader( "Content-Type", "binary/octet-stream" );
response.AddHeader( "Content-Disposition", "attachment; filename=" + filename + "; size=" + file.Length.ToString() );
response.Flush();
response.BinaryWrite( downloadBytes );
response.Flush();
response.End();
当这段代码在一个页面上执行时,一切正常。另一个页面基本相同,唯一的区别是要写入PDF的HTML输出,我已经验证了它是否正常工作。然而,什么也没有发生。我已经仔细阅读了代码,它只是顺其自然,但浏览器没有提示下载


我知道我漏掉了很多代码,但因为它在一个实例中工作,而不是在另一个实例中工作,所以我很难找到解决方案。

您创建的字节数组在代码中称为file,但您二进制编写了“downloadbytes”-这就是问题所在吗?

我真的不想回答自己的问题,因为这意味着我在问之前没有做足够的研究。然而,我在回顾它时意识到我只在Firefox中测试过。在IE中运行它暴露了一个脚本错误,其中包含文本“error parsing near'%PDF-1.4%”,我在搜索时看到了该文本,但没有跟进

问题是页面不工作时使用了AJAX更新面板,当我声明代码相同时,我没有意识到这一点。导出按钮单击代码相同,但标记不同


中的第二个回复包含一些附加信息和解决方法。

如果问题是更新面板,那么您所需要做的就是为调用函数的控件添加完整的回发触发器。

我可以通过在更新面板中添加触发器来解决此问题

<Triggers>
    <asp:PostBackTrigger ControlID="YourControlID" />
</Triggers>


“几乎完全相同”与“不完全相同”的外观可疑。非工作版本中的数据实际上是二进制数据(如预制作的pdf)还是您只是试图使用
BinaryWrite
写入的文本数据?“可疑”“这是正确的。请看下面我的回答。是我的错,为了清楚起见,我更改了变量名,但没有在任何地方更改它。