Перенаправление с помощью js-кода в событии

Внутри события в моем коде за файлом я хочу запустить скрипт, который перенаправляет пользователя на определенную страницу через 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);

person holyredbeard    schedule 15.03.2012    source источник


Ответы (1)


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);
person Saeb Amini    schedule 15.03.2012
comment
Спасибо. Хорошо, но как мне ввести динамический номер, который является частью URL-адреса (movieID)? - person holyredbeard; 15.03.2012
comment
Я пробовал: Page.ClientScript.RegisterStartupScript(this.GetType(), alert, setTimeout('top.location.href = + String.Format(~/Edit.aspx?id={0}, movie.MovieID) + ', 3000);, верно); но похоже не работает :/ - person holyredbeard; 15.03.2012
comment
Спасибо. Как ни странно, при компиляции кода ничего не происходит. Я отладил, и он компилируется, но, как я уже сказал, ничего не происходит? - person holyredbeard; 15.03.2012
comment
@JasonCraig, у меня была синтаксическая ошибка в моем JavaScript, попробуйте обновленный код, теперь он должен работать. - person Saeb Amini; 15.03.2012
comment
Отлично, ты спас мой день. Спасибо еще раз! :) - person holyredbeard; 15.03.2012