aspx 页面重定向到新页面
Posted
技术标签:
【中文标题】aspx 页面重定向到新页面【英文标题】:aspx page to redirect to a new page 【发布时间】:2010-11-08 17:58:41 【问题描述】:将浏览器重定向到带有 ASPX 页面的新页面需要什么代码?
我已经在我的页面 default.aspx 上尝试过这个:
<% Response.Redirect("new.aspx", true); %>
或
<%@ Response.Redirect("new.aspx", true); %>
这些导致未确定的服务器错误。我看不到错误代码;因为服务器不在我的控制范围内,错误也不公开。
请提供从页面第 1 行到最后的所有必要代码,我将不胜感激。
【问题讨论】:
【参考方案1】:<%@ Page Language="C#" %>
<script runat="server">
protected override void OnLoad(EventArgs e)
Response.Redirect("new.aspx");
</script>
【讨论】:
在Response.Redirect(..)
后面加上base.OnLoad(e);
的目的是什么?
达林我知道这是很老的答案,但base.OnLoad
有什么原因吗?
@gdoron 我认为它只是在那里,因为当您开始键入 OnLoad
方法时,Visual Studio 自动完成会插入它。没有它似乎也能正常工作。
我希望我不会对这个答案投赞成票。现在我不能因为它有 50% 的冗余代码而投票反对它...... :( Darin 你真的应该编辑它或解释为什么你包含对基本方法的调用。【参考方案2】:
您也可以在 html 中使用meta tag:
<html>
<head>
<meta http-equiv="refresh" content="0;url=new.aspx" />
</head>
<body>
</body>
</html>
【讨论】:
说真的,反对票是怎么回事?如果您只需要重定向到另一个页面,则不必使用 ASP.Net。如果你需要打钉子,你可以在普通锤子和大锤之间进行选择,你会选择哪一个?我希望你会说普通的锤子。 这是一个针对 asp.net 问题的 html 解决方案。 对,但是 html 是 ASP.NET 的一个巨大部分。 W3C 已弃用 META 元素进行刷新或重定向。 w3.org/TR/WCAG10-HTML-TECHS/#meta-element 我同意这不是最好的答案,但仍然是一个答案。【参考方案3】:达林的回答效果很好。它创建一个 302 重定向。这是修改后的代码,以便创建永久 301 重定向:
<%@ Page Language="C#" %>
<script runat="server">
protected override void OnLoad(EventArgs e)
Response.RedirectPermanent("new.aspx");
base.OnLoad(e);
</script>
【讨论】:
不错的一个!搜索引擎优化的家伙喜欢这个。 哇,直到现在我才知道。 请注意这是.net framework 4.0及更高版本;不是框架 2 等。见msdn.microsoft.com/en-us/library/…【参考方案4】:如果你使用的是VB,你需要去掉分号:
<% Response.Redirect("new.aspx", true) %>
【讨论】:
对我来说也很好,而且答案更简短。【参考方案5】:或者您可以使用 javascript 重定向到另一个页面:
<script type="text/javascript">
function toRedirect()
window.location.href="new.aspx";
</script>
从客户端调用这个toRedirect()
函数(例如:body标签的onload事件)或从服务器使用:
ClientScript.RegisterStartupScript(this.gettype(),"Redirect","toRedirect()",true);
【讨论】:
【参考方案6】:即使您不控制服务器,您仍然可以通过在项目中的 Web.config 文件中添加以下行来查看错误消息(低于<system.web>
):
<customErrors mode="off" />
【讨论】:
【参考方案7】:重定向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>
【讨论】:
【参考方案8】:在 ASP.NET 中的一种特殊情况 如果您想知道页面是否被指定的 .aspx 页面重定向而不是另一个页面,只需将信息放在会话名称中并在接收 Page_Load 事件中采取必要的操作。
【讨论】:
以上是关于aspx 页面重定向到新页面的主要内容,如果未能解决你的问题,请参考以下文章