如何用ASPX页面代码将浏览器重定向到新页面?
我在我的default.aspx页面尝试了以下代码:
<% Response.Redirect("new.aspx", true); %>
或
<%@ Response.Redirect("new.aspx", true); %>
这些导致了一个不确定的服务器错误。我无法看到错误代码, 因为服务器不在我的控制范围内,而且错误信息也不是公开的。
请提供从页面第一行到最后所有必要的代码,我将非常感激。
<%@ Page Language="C#" %>
<script runat="server">
protected override void OnLoad(EventArgs e)
{
Response.Redirect("new.aspx");
}
</script>
您也可以使用带有meta标签的纯HTML来实现此操作:
<html>
<head>
<meta http-equiv="refresh" content="0;url=new.aspx" />
</head>
<body>
</body>
</html>
Darin的答案非常有效。它创建了一个302重定向。以下是修改后的代码,以创建永久的301重定向:
<%@ Page Language="C#" %>
<script runat="server">
protected override void OnLoad(EventArgs e)
{
Response.RedirectPermanent("new.aspx");
base.OnLoad(e);
}
</script>
<% Response.Redirect("new.aspx", true) %>
或者您可以使用JavaScript重定向到另一个页面:
<script type="text/javascript">
function toRedirect() {
window.location.href="new.aspx";
}
</script>
从客户端(例如:body标签的onload事件)或者服务器上,使用以下代码调用toRedirect()
函数:
ClientScript.RegisterStartupScript(this.gettype(),"Redirect","toRedirect()",true);
即使您无法控制服务器,只需在项目的Web.config文件中添加以下行(在<system.web>
下方)即可查看错误消息:
<customErrors mode="off" />
重定向 aspx:
<iframe>
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.avsapansiyonlar.com/altinkum-tatil-konaklari.aspx");
}
</script>
</iframe>
只需放置您想要开始的页面。 已经有人提供了类似的答案。 它有效且易于操作。
<meta http-equiv="refresh" content="0;url=START_PAGE_Current.html" />
Response.Redirect(..)
后面加上base.OnLoad(e);
的目的是什么? - Tapanbase.OnLoad
有什么原因吗? - gdoron