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 文件中添加以下行来查看错误消息(低于&lt;system.web&gt;):

<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 页面重定向到新页面的主要内容,如果未能解决你的问题,请参考以下文章

非aspx页面的404重定向

如何创建重定向页面到新页面

如何在控制器操作中重定向到 aspx 页面

Sentry 捕获错误时重定向到新页面

使用 .htaccess 从旧页面重定向到新页面

htaccess 重定向到新页面但保留“get”参数