Como capturar o endereço e o nome da página atual no ASP.NET

As vezes precisamos capturar o endereço de uma página na nossa aplicação durante a sua execução, daí a primeira coisa que nos vem na cabeça seria utilizar o método FilePath da classe Request ou a coleção ServerVariables que existia no ASP.3.0.

Porém, esses métodos só funcionam quando você trabalha com redirecionamentos simples de páginas, um exemplo é usando Response.Redirect. Como fazermos então para capturar o endereço da página quando redirecionamos a mesma com Server.Transfer() ou Server.Execute()?

Para capturar é muito simples, utilizamos o método CurrentExecutionFilePath da classe Request:

 

'Retorna o endereço completo da página atual

Dim strPaginaAtual As String = Request.CurrentExecutionFilePath

 

'Retorna apenas a página atual

strPaginaAtual = strPaginaAtual.Remove (0, strPaginaAtual.LastIndexOf ("/") + 1)

 

Só lembrando que se tentarmos capturar nesse caso através do FilePath ou da coleção Server.Variables, ele retornará a página que postou e não a atual.