2012-11-21 5 views
6

Sono sicuro che questo è stato chiesto più volte. E sì, ho cercato. Tuttavia, non sono in grado di trovare un esempio che dimostri chiaramente quello che sto cercando di realizzare.Modo corretto per eseguire una Response.Redirect da una pagina all'altra nello stesso sito

Attualmente sono su mywebsite/test.aspx, Desidero reindirizzare a mywebsite/testing.aspx. Tuttavia, desidero che questo reindirizzamento funzioni sia sul server che all'interno del debug di Visual Studio. Ho provato

Response.Redirect(Request.RawUrl.Replace(Request.RawUrl,"testing.aspx")) 

Tuttavia questo sostituisce il tutto.

Spero che questo ha un senso - mywebsite/test.aspx dovrebbe reindirizzare mywebsite/testing.aspx

risposta

10

Utilizzare gli URL relativi all'applicazione. ~/ rappresenta il percorso root dell'applicazione, quindi funzionerà sia per / sia per /virtual-directory/.

Response.Redirect("~/testing.aspx"); 
1

È possibile utilizzare l'URL relativo alla radice del sito web. Questi URL iniziano sempre con / che significa 'root'

Per Response.Redirect e qualsiasi altro url si sa sarà processata dal server (come URL specificato nel controllo server) è meglio iniziare URL con ~/ come root, questo vi aiuterà con pasticcio di directory virtuali.

5

Se la pagina è sullo stesso livello di directory si può semplicemente usare:

Response.Redirect("testing.aspx", false); 

Se la pagina è in radice di applicazione è possibile utilizzare seguente comando:

Response.Redirect("~/testing.aspx", false); 

E infine , se la pagina si trova nella sottodirectory dalla pagina corrente è possibile utilizzare:

Response.Redirect("MyFolder/testing.aspx", false); 
Problemi correlati