【问题标题】:the http verb post used to access path is not allowed in asp.net用于访问路径的 http 动词 post 在 asp.net 中是不允许的
【发布时间】:2013-04-23 09:14:05
【问题描述】:

当我写代码的时候..

 <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 文件后,我正在尝试将页面重定向到另一个页面。

【问题讨论】:

  • 你为什么不改用Response.Redirect()
  • 如果我写 Response.Redirect() 也会发生同样的事情

标签: c# button postback response.redirect


【解决方案1】:

您正在查看此部分:

Server.Transfer("a.aspx");

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

PostBackUrl="~/Biodata.xls"

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

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

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

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

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

有关其他相关问题,另请参阅 herehere

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多