2009-07-07 6 views
59

Каков код, необходимый для перенаправления браузера на новую страницу с помощью страницы ASPX?страница aspx для перенаправления на новую страницу

Я попробовал это на моей странице default.aspx:

<% Response.Redirect("new.aspx", true); %> 

или

<%@ Response.Redirect("new.aspx", true); %> 

И это привело к ошибке сервера, который является неопределенным. Я не вижу код ошибки; потому что сервер не в моем распоряжении, и ошибки не являются общедоступными.

Просьба предоставить весь необходимый код из строки 1 страницы до конца, и я был бы очень признателен.

ответ

124
<%@ Page Language="C#" %> 
<script runat="server"> 
    protected override void OnLoad(EventArgs e) 
    { 
     Response.Redirect("new.aspx"); 
    } 
</script> 
+11

Какова цель иметь 'base.OnLoad (е),' 'после Response.Redirect (..) '? – Tapan

+0

Дарин Я знаю, что это очень старый ответ, но есть ли причина для 'base.OnLoad'? – gdoron

+0

@gdoron Я думаю, что это только потому, что автозаполнение Visual Studio вставляет его, когда вы начинаете вводить метод «OnLoad». Кажется, он работает так же хорошо без него. –

11

Если вы используете VB, вам нужно удалить точку с запятой:

<% Response.Redirect("new.aspx", true) %> 
+3

Работает отлично и для меня, и это короче Ответ: – omarrr

21

Вы также можете сделать это простым в HTML с meta tag:

<html> 
<head> 
    <meta http-equiv="refresh" content="0;url=new.aspx" /> 
</head> 
<body> 
</body> 
</html> 
+0

Почему так голосует? – jrummell

+0

Серьезно, что с пустым голосом? Если все, что вам нужно использовать, перенаправляется на другую страницу, вам не нужно использовать ASP.Net. Если вам нужно водить гвоздь, а вы может выбрать между нормальным молотом и кувалдой, который вы бы выбрали? Надеюсь, вы скажете нормальный молот. – jrummell

+3

Я голосую отбойным молотком. Пневматический - единственный способ летать. –

2

Даже если вы не контролируйте сервер, вы все равно можете видеть сообщения об ошибках, добавив следующую строку в файл Web.config в своем проекте (bewlow <system.web>):

<customErrors mode="off" /> 
3

Или вы можете использовать JavaScript для перенаправления на другую страницу:

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

Вызывайте эту toRedirect() функция от клиента (напр: OnLoad событие тега тела) или с сервера с помощью:

ClientScript.RegisterStartupScript(this.gettype(),"Redirect","toRedirect()",true); 
13

Ответ Дарина отлично работает. Он создает перенаправление 302. Вот код изменен так, что он создает постоянную переадресацию 301:

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

Хороший! Парни SEO любили это. – callisto

+0

Ничего себе, я до сих пор об этом не говорил. – furtive

+0

Обратите внимание, что это .net framework 4.0 и новее; не Framework 2 и т. д. См. http://msdn.microsoft.com/en-us/library/system.web.httpresponse.redirectpermanent.aspx – GlennG

0

Перенаправление 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> 
Смежные вопросы