在asp.net中不允许使用HTTP谓词post来访问path

本文关键字:post 谓词 访问 path HTTP net asp 不允许 | 更新日期: 2023-09-27 18:10:31

当我写代码…

 <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");
}

我得到下面给出的错误。

不允许使用HTTP动词POST访问路径'/WebSite4/Biodata.xls'。

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

在asp.net中不允许使用HTTP谓词post来访问path

你正在看这部分:

Server.Transfer("a.aspx");

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

PostBackUrl="~/Biodata.xls"

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

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

  1. 你可以把任务交给a.aspx。然后,a.aspx的工作是返回一个响应。

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

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

其他相关问题请参见此处和此处。