我正在尝试在用户单击网络表单上的asp:link按钮时在新窗口中弹出一个excel文件。我正在将其设置为使用 OnClick 函数,并在后面的代码中执行 respond.redirect 到项目中 excel 文件的位置。您可以在下面的代码中看到这一点。由于某种原因它不起作用,我在浏览器中弹出了一个空白页。这甚至是最佳实践吗?我还可以将链接定向到可以存储 excel 文件的共享网络驱动器,但这似乎有点太复杂了。
<asp:LinkButton ID="btnCBFormat" runat="server" Text="CB Format Example" OnClick="btnCBFormat_Click" Target="_blank" />
<asp:LinkButton ID="btnMBFormat" runat="server" Text="MB Format Example" OnClick="btnMBFormat_Click" Target="_blank" />
protected void btnCBFormat_Click(object sender, EventArgs e)
{
Response.Redirect("//Chargebacks/Formats/CBFormat.xsl");
}
protected void btnMBFormat_Click(object sender, EventArgs e)
{
Response.Redirect("//Chargebacks/Formats/MBFormat.xls");
}
首先,我认为 Dai 是对的:您应该使用 Excel 文件的<a>
链接,而不是回发。
其次,我怀疑您遇到的问题与IIS未设置为提供Excel文件有关。 你告诉它加载一些它不知道如何返回的东西。
这是应该的。 如果出于其他原因必须回发,并且需要将 Excel 流式传输给用户,请研究通过 ASP.NET 将文件流式传输给用户。 通常就是这样做的。
顺便说一下,如果这些Excel文件要持续更新,将它们放在文件共享上是有意义的:您将能够在不摆弄Web服务器的情况下修改它们。