ASP.NET – Obtendo o nome da página corrente

Parace um pouco estranho, mas geralmente dá mais trabalho é obter as informações mais óbvias e básicas. Bibliotecas e mais bibliotecas fornecem informações sobre tudo, mas o básico geralmente está além do trivial.

Uma dessas informações que me forçou a uma pesquisa na web foi como obter o nome físico da página em que estava trabalhando. O nome físico mesmo, por exemplo, Default.aspx. Nada mais óbvio não?

Pois bem, a linha de código não óbvia que resolver este problema é esta:

// pega o nome do arquivo da página corrente
string pageFileName = System.IO.Path.GetFileName(HttpContext.Current.Request.FilePath);

Bom, uma vez conseguida a informação, a pergunta que fica é, onde poderíamos ou até deveríamos usá-la? Uma situação que vivi por exemplo foi a de trabalhar com o controle MultiView. Como ele se baseia em várias Views que devem ser definidas no momento de mostrar seu conteúdo, pode ser necessária uma estrutura bem montada para fazer a troca das Views, com por exemplo, via QueryString. Neste cenário, seria necessário saber o nome da página corrente para fazer o redirecionamento correto com a QueryString montada. Claro que o nome da página poderia ser informado diretamente, mas no caso de ser necessário renomear a página por qualquer motivo, seria um problema ter que lembrar de corrigir todas as strings no código que a contém.

É isso. Bom proveito!

Tomás