1

我想允许客户端下载附件。这attachment.AttachmentContent是文件中的字节数组。当我单击按钮下载附件时,它会在下面运行此代码。但我有以下脚本错误。我应该怎么做才能修复它?

未捕获的 Sys.WebForms.PageRequestManagerParserErrorException:Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器接收到的消息。此错误的常见原因是通过调用 Response.Write()、响应过滤器、HttpModules 或启用了服务器跟踪来修改响应。详细信息:在 '����JFIF``' 附近解析错误。

Attachment attachment = _attachmentService.GetAttachmentBytesById(int.Parse(e.CommandArgument.ToString()));

Response.Clear();
Response.ClearHeaders();
Response.ContentType = "image/jpeg";
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + "test.jpg" + "\"");
Response.OutputStream.Write(attachment.AttachmentContent, 0, attachment.AttachmentContent.Length);
Response.End();
4

1 回答 1

4

似乎您在部分响应中发送此文件下载。

最常见的原因是您的下载按钮位于 UpdatePanel 内。

文件只能在完整的 PostBack 上发送。

您可以将下载按钮设置为 PostBack 触发器来解决此问题。

<Triggers>
    <asp:PostBackTrigger ControlID="Download_Click">
</Triggers>
于 2013-06-11T07:14:44.127 回答