2009-03-16 13 views

Respuesta

2

Una página puede tener varias direcciones URL. Por ejemplo, tengo un servidor ejecutándose en mi casa y la URL del sitio es diferente dependiendo de dónde lo verifique. Cuando estoy en casa solo uso el nombre del servidor interno para que el tráfico nunca salga de mi red doméstica. Cuando estoy en otro lugar, tengo que usar la url basada en dyndns.org. También podría configurar varios sitios diferentes para que todos apunten al mismo lugar. El punto es que esta información no está ligada al tipo de clase de su página, o incluso a una instancia específica.

Por lo tanto, la dirección URL de una página sólo se puede determinar en función de cada solicitud, y por supuesto lo puede conseguir examinado Request.Url

+0

la cosa por solicitud es mi problema.Siempre puedo contextualizarlo, pero me gustaría simplemente obtener la ruta del script virtualmente (para la web) o físicamente (en el disco). En realidad, no necesito la URL completa, solo el directorio y la ubicación del script –

+0

Mi consejo es agregar esa ruta como un parámetro para cualquier función que la necesite, y cambiar la forma en que la llame. –

+0

Hmm ... recupero parte de esto. Es por sesión en lugar de por solicitud. La lógica involucrada (y la solución propuesta) todavía se aplican, sin embargo. –

1

Esperemos que uno de ellos le ayudará.

Understanding Paths in ASP.NET

Expresión - Evaluación

this.TemplateSourceDirectory -/InformIT/subdirectorio

Request.MapPath ("log.txt") - c: \ mywebdirs \ InformIT \ subdirectorio \ log. txt

this.MapPathSecure ("log.txt") - c: \ mywebdirs \ InformIT \ subdirectorio \ log.txt

Request.Path -/InformIT/Subdi r/pathsample.aspx/Extra

Request.FilePath - /informit/subdir/pathsample.aspx

Request.CurrentExecutionFilePath - /informit/subdir/pathsample.aspx

Request.PathInfo -/Extra

Request.PhysicalPath - c: \ mywebdirs \ InformIT \ subdirectorio \ pathsample.aspx

Request.PhysicalApplicationPath - c: \ mywebdirs \ InformIT \

Request.ApplicationPath -/InformIT

Request.Url - http://localhost/informit/subdir/client.aspx/extra

Request.RawUrl - /informit/subdir/pathsample.aspx/extra

Response.ApplyAppPathModifier ("foo.aspx") -/InformIT/subdirectorio/foo.aspx

this.ResolveUrl ("~/client.aspx") - /informit/pathsample.aspx

0

debe estar disponible a través de

string currentUrl = Page.Request.Url.ToString();

0

Si la página que está buscando se encuentra en el mismo directorio que la página actual, o en un subdirectorio de él, entonces se puede usar algo como lo siguiente (la adición de la página subdirectorio en la cadena, según sea necesario):

string targetUrl = HttpContext.Current.Request.Url.Scheme 
       + "://" 
       + HttpContext.Current.Request.Url.Authority 
       + this.TemplateSourceDirectory + "/Page.aspx"; 
Cuestiones relacionadas