2010-06-02 34 views
10

Estoy trabajando con ASP.net. Mi sitio web está alojado dentro de una subcarpeta test en el directorio raíz de IIS. Por lo tanto, la url de default.aspx es http://localhost/test/Default.aspx. Desde default.aspx, quiero usar Reponse.Redirect() con una ruta relativa para redirigir a otra url dentro del mismo sitio web, http://localhost/test/whatever.Usando Response.Redirect() a una ruta relativa

me trataron

Response.Redirect("/whatever"); 

y

Response.Redirect("~/whatever"); 

Ambos redirigir a http://localhost/whatever. Tenga en cuenta que el método Redirect usa http://localhost en lugar de http://localhost/test/ como la URL base.

¿Alguna idea?

Gracias.

+0

Cometí un error tonto. Response.Redirect ("~/lo que sea"); debería ir a http: // localhost/test/whatever. Gracias a todos . – Shuo

Respuesta

12

Probar:

Response.Redirect("hello"); 

también

Response.Redirect("./hello"); 

disfrutar!

2

Lo siento si estoy simplificar en exceso o no se entiende su pregunta, pero ¿ha intentado simplemente:

Response.Redirect("hello"); 
0

Prueba esto (mi ejemplo es VB.net)

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

me gusta tener Utils.RedirectRelative ("~/somedirectory/SomePage.aspx") en una clase alguna parte, pero no sé cómo "buena práctica" eso es.