Использование Response.Redirect() для относительного пути

Я работаю с ASP.net. Мой сайт размещен внутри подпапки test в корневом каталоге IIS. Таким образом, url default.aspx - http://localhost/test/Default.aspx. Из default.aspx я хочу использовать Reponse.Redirect() с относительным путем перенаправления на другой URL-адрес на том же веб-сайте, http://localhost/test/whatever.

Я пробовал

Response.Redirect("/whatever");

и

Response.Redirect("~/whatever");

Оба они перенаправляются на http://localhost/whatever. Обратите внимание, что метод Redirect использует http://localhost вместо http://localhost/test/ в качестве базового url.

Любые идеи?

Спасибо.

Ответ 1

Try:

Response.Redirect("hello");

и

Response.Redirect("./hello");

Наслаждайтесь!

Ответ 2

Извините, если я слишком упрощаю или не понимаю ваш вопрос, но вы просто попробовали:

Response.Redirect("hello");

Ответ 3

Попробуйте (мой пример - VB.net)

  Dim url As String = "~/SomeDirectory/SomePage.aspx"
  Response.Redirect(url.Replace("~"c, Request.ApplicationPath))

Мне нравится иметь Utils.RedirectRelative( "~/SomeDirectory/SomePage.aspx" ) в каком-то классе, но я не знаю, как это сделать.