【发布时间】:2016-01-20 02:07:53
【问题描述】:
我有一个问题,之前这段代码可以正常工作。如果我点击按钮,它可以下载excel文件。但是现在这个按钮不起作用,我不确定哪个部分不正确。
我有两个用于此功能的文件:
<tr>
<td class="col-md-3"><b>Template File:</b></td>
<td class="col-md-9">
<asp:Button ID="btnDownloadTemplate" runat="server" OnClick="btnDownloadTemplate_Click" Text="Download Template" CssClass="btn btn-primary" />
</td>
</tr>
和
protected void btnDownloadTemplate_Click(object sender, EventArgs e)
{
FileInfo file = new FileInfo(Server.MapPath("~/Images/ACCUploads/ACCTemplate/AppleCareDevices.xlsx"));
if (file.Exists)
{
Response.ContentType = "Application/xlsx";
Response.AppendHeader("Content-Disposition", "attachment; filename=AppleCareDevices.xlsx");
Response.TransmitFile(Server.MapPath("~/Images/ACCUploads/ACCTemplate/AppleCareDevices.xlsx"));
Response.End();
}
}
【问题讨论】:
-
您是否尝试过在
btnDownloadTemplate_Click方法中设置断点,并查看每一行代码是否实际正在执行?我的第一个猜测是该文件不再存在于从"~/Images/ACCUploads/ACCTemplate/AppleCareDevices.xlsx"映射的路径中。最好的检查方法是调试代码,看看file.Exists是否为真。 -
在浏览器中按 F12 并检查控制台面板中是否有任何错误消息。如果有任何错误,请发布。
-
你添加了更新面板吗?还是添加了使页面的有效状态为假的asp验证器?
-
Vlad Bezden:未捕获 Sys.WebForms.PageRequestManagerParserErrorException:Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器接收到的消息。此错误的常见原因是通过调用 Response.Write()、响应过滤器、HttpModules 或启用服务器跟踪来修改响应。详细信息:在“PK!b��h^”附近解析错误。
-
Elezar:我检查了文件,这个文件存在。这个问题突然发生在我们的生产和开发中。两者都使用相同的代码。