我试图在页面中显示加载动画6秒然后重定向页面。
如果我在Response.Redirect(@"~\WorklistPage.aspx", true);
中使用Page_Load
,则会按预期将页面重定向到worklistpage。
但是当我尝试延迟重定向功能时,它会抛出异常。
在我尝试过的工作之下。我收到response is not available in context
错误
protected void Page_LoadComplete(object sender, EventArgs e)
{
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 6000;
aTimer.Enabled = true;
//timer = new System.Threading.Timer(obj => { Response.Redirect(@"~\WorklistPage.aspx", true); }, null, 3000, System.Threading.Timeout.Infinite);
//Response.Redirect(@"~\WorklistPage.aspx", true);
}
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
aTimer.Enabled = false;
//HttpContext.Current.Response.Redirect(@"~\WorklistPage.aspx");
//Response.Redirect(@"~\WorklistPage.aspx",true);
//Response.Redirect(@"~\WorklistPage.aspx",false);
//Server.Transfer(@"~\WorklistPage.aspx", true);
}
为什么我收到错误,我该如何解决?
答案 0 :(得分:3)
简短回答是,如果您想在页面加载后六秒自动重定向浏览器,则需要在JavaScript中而不是在服务器上执行此操作。您如何期望在后面的代码中在服务器上触发的线程告诉浏览器在返回http响应后6秒重定向到另一个页面?你可以用信号器来做这种事情,但是对于一个简单的重定向来说它是一种过度的过度杀伤。
答案 1 :(得分:3)
无法从服务器端调用网页,因为延迟你必须使用java脚本....你必须使用这样的东西例如:
protected void Page_LoadComplete(object sender, EventArgs e)
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "success", "alert('Submitted Successfully.'); setInterval(function(){location.href='http://www.google.com';},3000);", true);
}