我希望客户能够下载PDF文件。所以我用代码放了一个LinkButton:
标记:
<asp:LinkButton ID="lnkPrintHere" runat="server" OnClick="lnkPrintHere_Click" Text="Click here" />
代码背后:
protected void lnkPrintHere_Click(object sender, EventArgs e)
{
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.TransmitFile("/_layouts/Files/" + fileName);
Response.End();
}
点击链接第一次时,一切正常。后续点击不会引发OnClick
事件。有谁知道为什么会发生这种情况?
PS:如果您需要更多信息,请随时询问。
答案 0 :(得分:0)
如果您使用Response.End()
这里提到: Post Back does not work after writing files to response in ASP.NET
一种解决方法是使用查询字符串方法。单击链接按钮重定向到查询字符串相同的页面时。在页面加载中,如果检测到查询字符串,则发出PDF并返回。
答案 1 :(得分:0)
您总是可以在响应方法本身中尝试替代方法,我将您的代码与Response.Close一起使用,并且其工作正常。但我知道,这不是正确的选择,但使用查询字符串进行下载也不是一个正确的选择。