我正在使用
Response.AppendHeader("Refresh", "2; url=default.aspx")
要在用户登录或注销后将其发送回主页并且有效。但是,在联系我们页面上它失败了,这就是它所说的:
无法找到资源。描述:HTTP 404.资源你 正在寻找(或其中一个依赖)可能已被删除, 更改名称,或暂时不可用。请查阅 以下网址,并确保拼写正确。
请求的网址:/default.aspx,2; URL = Default.aspx的
奇怪的是,这不会在调试中发生,只会在实际网站上发生。它看起来像是两次以某种方式附加标题......我不知道。有什么想法吗?
答案 0 :(得分:0)
如果“联系”页面与Default.aspx不在同一路径中,则相对路径将不起作用。你需要给它一个绝对的路径,如“../Default.aspx”,如果它的一级下来。
答案 1 :(得分:0)
我发现它是什么。在我的aspx中我有
onclick="btnSubmit_Click" runat="server"
您只需要runat =“server”指令。 onclick指令导致事件处理程序触发两次。
答案 2 :(得分:0)
一种解决方案是替换:
Response.AppendHeader("Refresh", "2; url=default.aspx");
具有:
Response.Headers["Refresh"] = "2; url=default.aspx";
HTTP 404错误的原因是由于HTTP响应标头中的“ Refresh”标头重复。它不会影响IE,但会影响Chrome。
这是一个棘手的问题,只有当您在浏览器的开发人员模式下看到HTTP响应标头时,您才能理解这一点。
在ASP.NET中,如果您使用的是Server.Transfer
,则即使传输完成,地址栏中的页面名称也不会更改。例如如果您是从Default.aspx
转移到Managers.aspx
,则地址栏上仍显示Default.aspx
。并且,当Response.AppendHeader
在Default.aspx
和Managers.aspx
的页面上时,则在传输时,标头会两次添加到Default.aspx
。