Перенаправление с кодом js в событии - PullRequest
2 голосов
/ 15 марта 2012

Внутри события в моем коде позади файла я хочу запустить скрипт, который перенаправляет пользователя на определенную страницу через 3 секунды. Я понимаю, что могу использовать строку Page.ClientScript ниже с setTimeout, но мне нужна помощь в том, что на самом деле поместить в оператор setTimeout, чтобы это работало?

Внизу находится строка кода, которую я использую для перенаправления, которую я хочу заменить строкой Page.ClientScript.

Заранее спасибо!

Page.ClientScript.RegisterStartupScript(this.GetType(), "redirect", "setTimeout('???', 3000);", true);

Response.Redirect(String.Format("~/Edit.aspx?id={0}", movie.MovieID), false);

ПРИМЕЧАНИЕ. Я безуспешно пробовал следующее:

Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "setTimeout('top.location.href = " + String.Format("~/Edit.aspx?id={0}", movie.MovieID) + "', 3000);", true);

1 Ответ

2 голосов
/ 15 марта 2012
setTimeout("top.location.href = 'TARGET'", 3000);

Замените TARGET URL-адресом, на который вы хотите перенаправить.

Вы можете динамически создать целевой URL из кода:

string targetUrl = String.Format("/Edit.aspx?id={0}", movie.MovieID);
string javaScript = "setTimeout(\"top.location.href = '" + targetUrl + "'\", 3000);";

ClientScript.RegisterStartupScript(typeof(Page), "redirect", javaScript, true);
...