C# 为什么我的文件下载失败? 还有另一种方法。。。
尽管VDWWD关于为updatepanel创建postbacktrigger的回答很好,但我的时间紧迫迫使我选择了另一种可行的方法 因此,我没有在GridView上使用C# 为什么我的文件下载失败? 还有另一种方法。。。,c#,asp.net,C#,Asp.net,尽管VDWWD关于为updatepanel创建postbacktrigger的回答很好,但我的时间紧迫迫使我选择了另一种可行的方法 因此,我没有在GridView上使用并在SelectedIndexChanged上下载,而是选择了,如下所示: <asp:HyperLinkField Text="Download" DataNavigateUrlFields="Filename" DataNavigateUrlFormatString="~/Members/Documents/{0}
并在SelectedIndexChanged
上下载,而是选择了
,如下所示:
<asp:HyperLinkField Text="Download" DataNavigateUrlFields="Filename"
DataNavigateUrlFormatString="~/Members/Documents/{0}" Target="_blank" />
我的浏览器的开发工具中有一个解析器错误。。。关于“使用response.Write()编辑响应时可能发生这种情况”
令人烦恼的是,当我从数据库中读取文件的二进制数据以供下载时(如下所示),它起了作用:
Response.Clear();
Response.ContentType = file.MimeType;
Response.AddHeader("content-disposition", $"attachment; filename={file.Filename}");
Response.BinaryWrite(file.FileData);
Response.End();
那么,单更改行是如何中断它的呢?您可以通过编程方式添加PostBackTrigger。在这个代码段中,它循环GridView中的所有行,并添加每个下载按钮作为触发器
foreach (GridViewRow row in gvFiles.Rows)
{
LinkButton lb = row.FindControl("DownLoadButton") as LinkButton;
ScriptManager.GetCurrent(Page).RegisterPostBackControl(lb);
}
看起来您正在UpdatePanel中触发下载。如果是,请将PostBackTrigger设置为“下载”按钮。@VDWWD下载正在被触发,但位于主页上“更新”面板内的用户控件内。我不确定postbacktrigger在这种情况下会如何工作
文件名部分的内容处理标题应该用引号括起来。i、 e.内容处置:附件;filename=“filename.jpg”
foreach (GridViewRow row in gvFiles.Rows)
{
LinkButton lb = row.FindControl("DownLoadButton") as LinkButton;
ScriptManager.GetCurrent(Page).RegisterPostBackControl(lb);
}