1

我希望客户能够下载 PDF 文件。所以我在 LinkBut​​ton 上加上了代码:

标记:

<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:如果您需要更多信息,请随时询问。

4

2 回答 2

0

如果您使用,就会发生这种情况Response.End()

这里提到了这一点: 在 ASP.NET 中写入文件以响应后回发不起作用

一种解决方法是使用查询字符串方法。当您单击链接按钮时,使用查询字符串重定向到同一页面。在页面加载中,如果您检测到查询字符串,则发出 PDF 并返回。

于 2010-12-28T20:20:22.283 回答
0

您始终可以在响应方法本身中尝试替代方案,我将您的代码与 Response.Close 一起使用,并且工作正常。但我知道,这不是正确的选择,但使用查询字符串下载也不是正确的选择。

于 2010-12-28T20:40:09.653 回答