2011-03-06 2 views
6

C# 코드를 사용하여 1 분 후에 자동으로 ASP.NET 페이지를 다른 페이지로 리디렉션하는 방법페이지를 자동으로 리디렉션

<meta http-equiv="Refresh" content="60; url=http://your.new/url/here" /> 

은 "60"페이지 리디렉션하기 전에 대기하는 시간 (초)은 다음과 같습니다

+0

'C#'으로 코딩해야합니까? 아니면 html 메타 새로 고침 태그를 사용할 수 있습니까? –

답변

17

는이 같은 것을 사용할 수 있습니다.

+1

+1 훌륭한 답변! =) – gideon

0

클라이언트에서이 작업을 수행하는 것이 서버에서 수행하는 것보다 낫습니다.

타이머를 설정 한 다음 리디렉션하려면 javascript를 사용해야합니다.

리디렉션하는 방법에 대한이를 참조하십시오 How to redirect to another webpage in JavaScript/jQuery?

이 타이머이를 참조하십시오
Loop timer in javascript

http://www.w3schools.com/js/js_timing.asp

http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/

+1

은 javascript – davidsleeps

+0

@ david 일 필요는 없습니다. 더 나은 옵션 인 편집 된 대답을 의미합니다. – gideon

+0

주관적입니다. JS에서 일하는 데는 함정이 있습니다. – Mike

6

당신은 특정 시간 후 리디렉션하는 C# 코드를 사용할 수 없습니다 서버 측에서 C#이 서버 측에서 실행되기 때문에. 당신은 당신의 HTML에 메타 태그를함으로써이 작업을 수행 할 수 있습니다

HtmlMeta meta = new HtmlMeta(); 
HtmlHead head = (HtmlHead)Page.Header; 

meta.HttpEquiv= "refresh"; 
meta.Content = "300; url=newlocation"; 
head.Controls.Add(meta); 
2

당신이 그렇게 사용하여 작업을 수행 할 수 있습니다 :

<meta http-equiv="refresh" content="300; url=newlocation"> 

당신은이 태그를 만들 C#에서 코드를 작성할 수 있습니다, 여기에 예입니다

System.Threading.Thread.Wait(60); 
Response.Redirect("Somepage.aspx"); 

편집 :

System.Threading.Thread.SpinWait(60); 
Response.Redirect("Somepage.aspx"); 
+0

감사합니다. 위의 코드는 정확하지만 작동하지 않습니다. 테스트 해 봤니? –

+0

죄송합니다. 나는 뭔가를 놓쳤다. System.Threading.Thread.SpinWait (60) 대신에 그 줄을 사용해야한다. 행운을 빕니다. – Pooya

+0

원래 포스터의 질문과 관련하여 작동하지 않습니다. – Seany84

2

참고 : SpinWait 매개 변수는 위의 제안과 같이주기가 아니라 초입니다.

는 MSDN에 페이지 SpinWait 방법 로크를 구현하는데 유용하다 http://msdn.microsoft.com/en-us/library/system.threading.thread.spinwait.aspx

에서 촬영. Monitor 및 ReaderWriterLock과 같은 .NET Framework의 클래스는이 메서드를 내부적으로 사용합니다. 기본적으로 SpinWait은 iterations 매개 변수로 지정된 루프 수와 함께 매우 엄격한 루프에 프로세서를 배치합니다. 따라서 대기 시간은 프로세서의 속도에 따라 다릅니다.

0

JavaScript로 내 물건을 좋아해서 :-) 나는 JS가 좋아. 여기 내 JS 솔루션입니다.

<script type="text/javascript"><!-- 
setTimeout('Redirect()',4000); 
function Redirect() 
{ 
    location.href = 'your-redirect-to-link'; 
} 

// --></script> 

페이지가 4 분 후에 리디렉션됩니다. 헤드에 삽입해야합니다.

9

이 한 줄 코드를 사용해보십시오. 5는 5 초 후에 리디렉션하고 1 분 후에 리디렉션하려면 60으로 설정합니다.

protected void btnRedirect_Click(object sender, EventArgs e) 
{ 
    Response.AddHeader("REFRESH", "5;URL=YourNextPage.aspx"); 
} 

는 현재 페이지를로드 한 후 다른 페이지로 리디렉션됩니다 있도록 또한 페이지의 Load 이벤트에 넣을 수 있습니다이 코드.

1

이렇게하는 방법은 여러 가지가 있지만 여러 가지 상황에서 사용하면 잘 작동하기 때문에이 코드를 사용하는 것을 좋아합니다.

HtmlMeta oScript = new HtmlMeta(); 
oScript.Attributes.Add("http-equiv", "REFRESH"); 
oScript.Attributes.Add("content", "60; url='http://www.myurl.com/'"); 
Page.Header.Controls.Add(oScript); 
관련 문제