在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文件。
你正在看这部分:
Server.Transfer("a.aspx");
但是错误信息指的是这一部分:
PostBackUrl="~/Biodata.xls"
不要返回到xls文件。这不是下载东西的方式。你不能"下载一些东西,然后重定向到其他地方"。这不是HTTP请求和响应的工作方式。
浏览器请求您的页面。您正在返回一个响应。
你可以把任务交给a.aspx。然后,a.aspx的工作是返回一个响应。
或者您可以使用xls文件本身响应,并在HTTP头中使用适当的内容类型和配置。你会使用类似Response的东西。BinaryWrite,就像这样。然后就看浏览器怎么处理了。浏览器可以使用Excel之类的工具打开它,也可以为用户提供保存文件的机会。
你不能同时做这两件事。你必须做出选择。
其他相关问题请参见此处和此处。