2009-12-02 10 views
15

¿Qué objeto puedo usar para obtener el PageName.aspx actual (incluida la extensión .aspx) de la URL? No puedo encontrar el objeto y el método que me permitan tomar esto cuando estoy en una página.Cómo obtener el nombre de la página .aspx de la URL?

+0

Usted podría google esto ya sabes. Escriba el nombre de la página obtener en asp.net dentro de google y funciona de maravilla. – JonH

+3

Si "googleando" compró la página de desbordamiento de pila, entonces debería haber publicado esa pregunta/respuesta. Si no lo hizo, entonces debería ser preguntado aquí de esta manera para que StackOverflow sea el primer puerto de escala para cualquier cosa que sea "googleada". –

+2

@LymanZerga y @Robin Day, la primera respuesta en Google (y quizás respuestas adicionales), que es www.aspcode.net/Get-current-page-name.aspx en mi búsqueda, conduce a una solución basada en 'FileInfo'. Ver mi respuesta a continuación sobre los inconvenientes de la misma. Esta es la razón por la cual tal pregunta, que parece tan trivial, ** todavía merece una discusión decente **, compartiendo el conocimiento y la experiencia de todos nosotros. ¡Aclamaciones! –

Respuesta

10

Pino aquí está el hombre del lil fuente: http://www.devx.com/tips/Tip/42433

string sPagePath = System.Web.HttpContext.Current.Request.Url.AbsolutePath; 
    System.IO.FileInfo oFileInfo = new System.IO.FileInfo(sPagePath); 
    string sPageName = oFileInfo.Name; 
2
Request.Url.AbsolutePath 

divide sobre la '/', último elemento es el nombre del archivo.

14

Tenga en cuenta que a veces, en un alojamiento compartido como GoDaddy, es posible que no tenga permiso para crear un nuevo objeto FileInfo. Sí, créelo.

Así que le sugiero que utilice este fragmento:

string fullPath = /* System.Web.HttpContext.Current. (optional in most cases) */ Request.Url.AbsolutePath; 
string fileName = System.IO.Path.GetFileName(fullPath); 

Enjoy :-)

+1

Muy bien, especialmente envuelto en una sola declaración: 'System.IO.Path.GetFileNameWithoutExtension (Request.Url.AbsolutePath)' –

+0

Presumiblemente 'GetFileName' y' GetFileNameWithoutExtension' simplemente están analizando el nombre pasado y no están haciendo nada con el sistema de archivos ... –

-2

¿Qué tal esto:

var pageName = System.IO.Path.GetFileName(Request.Url.ToString()); 
    Response.Write(pageName); 
-2
string pageName = Path.GetFileName(Request.Path); 
+1

Path.GetFileName (Request.PhysicalPath); ¡es correcto! – AminM

1

Path.GetFileName (Request.PhysicalPath) puede ser usado para buscar el nombre del archivo real

Cuestiones relacionadas