【问题标题】:C# ASP. NET Inline file download handlerC# ASP。 NET 内联文件下载处理程序
【发布时间】:2015-09-01 12:25:16
【问题描述】:

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

代码:

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,使用 TransmitFile 而不是 WriteFile,等等。

有什么想法吗?

【问题讨论】:

标签: c# asp.net webforms


【解决方案1】:

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

天啊!

【讨论】:

    猜你喜欢
    • 2017-04-28
    • 1970-01-01
    • 2012-11-07
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    相关资源
    最近更新 更多