Pregunta

Necesito ser capaz de obtener en la dirección URL completa de la página yo soy de un control de usuario.Es sólo una cuestión de la concatenación de un montón de Solicitud de variables juntos?Si es así ¿cuáles?O es que hay un más simpiler manera?

¿Fue útil?

Solución

Yo normalmente uso Request.Url.ToString() para obtener la dirección url completa (incluyendo querystring), no concatenación necesaria.

Otros consejos

Aquí está una lista de las que normalmente se refieren a este tipo de información:

Request.ApplicationPath :   /virtual_dir
Request.CurrentExecutionFilePath :  /virtual_dir/webapp/page.aspx
Request.FilePath :  /virtual_dir/webapp/page.aspx
Request.Path :  /virtual_dir/webapp/page.aspx
Request.PhysicalApplicationPath :   d:\Inetpub\wwwroot\virtual_dir\
Request.QueryString :   /virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.AbsolutePath :  /virtual_dir/webapp/page.aspx
Request.Url.AbsoluteUri :   http://localhost:2000/virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.Host :  localhost
Request.Url.Authority : localhost:80
Request.Url.LocalPath : /virtual_dir/webapp/page.aspx
Request.Url.PathAndQuery :  /virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.Port :  80
Request.Url.Query : ?q=qvalue
Request.Url.Scheme :    http
Request.Url.Segments :  /
    virtual_dir/
    webapp/
    page.aspx

Esperamos que lo encuentre útil!

Request.Url.AbsoluteUri

Esta propiedad tiene todo lo que necesita, todo en un sucinto de la llamada.

Solicitud.RawUrl

si usted necesita la dirección URL completa como de todo, desde el http para la cadena de consulta que se necesita para concatenar las siguientes variables

Request.ServerVariables("HTTPS") // to check if it's HTTP or HTTPS
Request.ServerVariables("SERVER_NAME") 
Request.ServerVariables("SCRIPT_NAME") 
Request.ServerVariables("QUERY_STRING")

Para ASP.NET Core tendrás que explicárselo:

@($"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}{Context.Request.QueryString}")

O usted puede agregar una instrucción a la vista:

@using Microsoft.AspNetCore.Http.Extensions

entonces

@Context.Request.GetDisplayUrl()

El _ViewImports.cshtml podría ser un mejor lugar para que @using

Mejor usar Request.Url.OriginalString de Request.Url.ToString() (de acuerdo a MSDN)

Gracias chicos, he utilizado una combinación de ambos, sus respuestas @Cristiano y @Jonathan por mi necesidad específica.

"http://" + Request.ServerVariables["SERVER_NAME"] +  Request.RawUrl.ToString()

Yo no necesita preocuparse acerca de http seguro, necesita del nombre de la variable y el RawUrl se encarga de la ruta de acceso del nombre de dominio y que incluye la cadena de consulta si está presente.

Si usted necesita el número de puerto también, usted puede utilizar

Request.Url.Authority

Ejemplo:

string url = Request.Url.Authority + HttpContext.Current.Request.RawUrl.ToString();

if (Request.ServerVariables["HTTPS"] == "on")
{
    url = "https://" + url;
}
else 
{
    url = "http://" + url;
}

Tratar el siguiente -

var FullUrl = Request.Url.AbsolutePath.ToString();
var ID = FullUrl.Split('/').Last();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top