0

当我写代码时..

 <asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
        PostBackUrl="~/Biodata.xls" Text="Button" />

 protected void Button1_Click(object sender, EventArgs e)
{
    Server.Transfer("a.aspx");
}

我收到下面给出的错误。

不允许使用用于访问路径“/WebSite4/Biodata.xls”的 HTTP 动词 POST。

在这里,我试图在下载 xls 文件后将页面重定向到另一个页面。

4

1 回答 1

1

你正在看这部分:

Server.Transfer("a.aspx");

但是错误消息是指这部分:

PostBackUrl="~/Biodata.xls"

不要回发到 xls 文件。这不是下载东西的方式。而且你不能“下载一些东西然后重定向到其他地方”。这不是 HTTP 请求和响应的工作方式。

浏览器请求了您的页面。您正在返回响应。

  1. 您可以将作业交给 a.aspx。然后返回响应是 a.aspx 的工作。

  2. 或者,您可以使用 xls 文件本身进行响应,并在 HTTP 标头中使用适当的内容类型和配置。您将使用像 Response.BinaryWrite 这样的东西。 然后由浏览器来处理它。浏览器可以使用 Excel 之类的工具打开它,或者它可以为用户提供保存文件的机会。

你不能同时做这两件事。你必须选择。

另请参阅此处此处了解其他相关问题。

于 2013-04-23T16:37:22.290 回答