c# ASP.. NET内联文件下载处理程序

本文关键字:文件下载 处理 程序 ASP NET | 更新日期: 2023-09-27 18:10:45

我试图为用户创建一个文件处理程序,以便在网页上单击文件名时下载文件。我已经实现了这几次没有问题,但我目前得到一个错误,我不能得到我的头。

代码:

protected void btnViewFile_Click(object sender, EventArgs e)
{
    var btnViewFile = sender as LinkButton;
    Response.Clear();
    Response.ContentType = "application/octet-stream";
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + btnViewFile.CommandArgument.ToString());
    Response.WriteFile(Server.MapPath(btnViewFile.CommandArgument));
    Response.End();
}

如果我查看浏览器控制台,我可以看到:

Uncaught Sys.WebForms.PageRequestManagerParserErrorException: Sys.WebForms.PageRequestManagerParserErrorException:从服务器收到的消息不能被解析。

代码中没有抛出异常,请求的文件被转换为正确的完整路径;我已经尝试了相当多的不同的事情-清除头手动,结束前冲洗,给出一个更明确的内容类型的头,使用AddHeader而不是AppendHeader,使用TransmitFile而不是WriteFile,和相当多。

任何想法?

c# ASP.. NET内联文件下载处理程序

如果其他人遇到这种情况,问题是我在ScriptManager中将其注册为回发控件,而不是异步回发控件。

分析!