C#ASP。 NET内联文件下载处理程序

时间:2015-09-01 12:25:16

标签: c# asp.net webforms

我正在尝试为用户创建文件处理程序,以便在网页上单击文件名时下载文件。我已经实现了几次没有问题,但我现在遇到一个我无法理解的错误。

代码:

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();
}

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

  

未捕获的Sys.WebForms.PageRequestManagerParserErrorException:Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器收到的消息。

代码中似乎没有抛出异常,请求的文件被转换为正确的完整路径;我已经尝试了很多不同的东西 - 手动清除标题,在结束前刷新,使用AddHeader而不是AppendHeader,使用SendFile而不是WriteFile提供更明确的内容类型标题,还有更多。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

d'!哦