2010-06-02 16 views
10

Pracuję z ASP.net. Moja witryna jest hostowana w podfolderze test w katalogu głównym IIS. Tak więc adres URL default.aspx to http://localhost/test/Default.aspx. Od default.aspx chcę użyć Reponse.Redirect() z względną ścieżką do przekierowania do innego adresu URL w tej samej witrynie internetowej, http://localhost/test/whatever.Używanie Response.Redirect() do względnej ścieżki

Próbowałem

Response.Redirect("/whatever"); 

i

Response.Redirect("~/whatever"); 

Obaj przekierować do http://localhost/whatever. Zauważ, że metoda Redirect używa adresu http://localhost zamiast http://localhost/test/ jako adresu bazowego.

Wszelkie pomysły?

Dzięki.

+0

Sam popełniłem głupi błąd. Response.Redirect ("~/whatever"); powinien przejść do http: // localhost/test/cokolwiek. Dziękuję wam wszystkim . – Shuo

Odpowiedz

12

Spróbuj:

Response.Redirect("hello"); 

również

Response.Redirect("./hello"); 

Enjoy!

2

Przepraszam, jeśli jestem zbyt uproszczenia lub nieporozumienia Twoje pytanie, ale czy po prostu próbowałem:

Response.Redirect("hello"); 
0

Spróbuj tego (mój przykład jest VB.net)

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

lubię mieć Utils.RedirectRelative ("~/SomeDirectory/SomePage.aspx") w klasie gdzieś, ale nie wiem jak "dobra praktyka".

Powiązane problemy