我正在尝试为用户创建文件处理程序,以便在网页上单击文件名时下载文件。我已经实现了几次没有问题,但我现在遇到一个我无法理解的错误。
代码:
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提供更明确的内容类型标题,还有更多。
有什么想法吗?
答案 0 :(得分:0)
如果有其他人遇到这种情况,问题是我在ScriptManager中将其注册为回发控件,而不是异步回发控件。
d'!哦