aspx页面重定向到新页面

Sto*_*oob 71 c# asp.net redirect

将浏览器重定向到带有ASPX页面的新页面所需的代码是什么?

我在我的页面default.aspx上试过这个:

<% Response.Redirect("new.aspx", true); %>
Run Code Online (Sandbox Code Playgroud)

要么

<%@ Response.Redirect("new.aspx", true); %>
Run Code Online (Sandbox Code Playgroud)

这些导致服务器错误未确定.我看不到错误代码; 因为服务器不在我的控制之下,错误不公开.

请提供从页面第1行到结尾的所有必要代码,我将非常感激.

Dar*_*rov 143

<%@ Page Language="C#" %>
<script runat="server">
  protected override void OnLoad(EventArgs e)
  {
      Response.Redirect("new.aspx");
  }
</script>
Run Code Online (Sandbox Code Playgroud)

  • 在`Response.Redirect(..)`后面有`base.OnLoad(e);`的目的是什么? (11认同)

jru*_*ell 23

您也可以使用元标记在html中执行此操作:

<html>
<head>
  <meta http-equiv="refresh" content="0;url=new.aspx" />
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • W3C已弃用META元素用于刷新或重定向.http://www.w3.org/TR/WCAG10-HTML-TECHS/#meta-element (11认同)
  • 我同意它不是最好的答案,但仍然是一个答案. (4认同)
  • 我投掷手提钻.气动是唯一的飞行方式. (3认同)
  • 说真的,反对票是怎么回事?如果您需要使用的只是重定向到另一个页面,则不必使用 ASP.Net。如果您需要钉钉子,并且可以在普通锤子和大锤之间进行选择,您会选择哪一个?我希望你说的是普通的锤子。 (2认同)
  • 这是一个针对asp.net 问题的html 解决方案。 (2认同)

Mik*_*nen 15

达林的回答很有效.它创建302重定向.这是修改后的代码,以便创建永久301重定向:

<%@ Page Language="C#" %>
<script runat="server">
  protected override void OnLoad(EventArgs e)
  {
      Response.RedirectPermanent("new.aspx");
      base.OnLoad(e);
  }
</script>
Run Code Online (Sandbox Code Playgroud)


wwe*_*ker 12

如果您使用的是VB,则需要删除分号:

<% Response.Redirect("new.aspx", true) %>
Run Code Online (Sandbox Code Playgroud)

  • 对我来说工作正常,这是一个较短的答案. (3认同)

Pra*_*hav 5

或者您可以使用 javascript 重定向到另一个页面:

<script type="text/javascript">
    function toRedirect() {
        window.location.href="new.aspx";
    }
</script>
Run Code Online (Sandbox Code Playgroud)

toRedirect()从客户端调用此函数(例如:body 标签的 onload 事件)或从服务器使用:

ClientScript.RegisterStartupScript(this.gettype(),"Redirect","toRedirect()",true);
Run Code Online (Sandbox Code Playgroud)