it-swarm.com.de

URL der ASP.Net-Seite in CodeBehind abrufen

Ich habe eine ASP.Net-Seite, die auf verschiedenen Servern gehostet wird, und ich möchte die URL der Seite (oder besser: die Site, auf der die Seite gehostet wird) als Zeichenfolge zur Verwendung im Code-Behind abrufen . Irgendwelche Ideen?

191
Joel Coehoorn

Benutze das:

Request.Url.AbsoluteUri

Damit erhalten Sie den vollständigen Pfad (einschließlich http: // .. .)

222
Mikey

Wenn Sie nur den Schema- und Berechtigungsteil der Anfrage (Protokoll, Host und Port) verwenden möchten

Request.Url.GetLeftPart(UriPartial.Authority)
117
WDuffy

Ich benutze

Request.Url.GetLeftPart(UriPartial.Authority) +
        VirtualPathUtility.ToAbsolute("~/")
29
Ivan Stefanov

Ich verwende dies in meinem Code in einer benutzerdefinierten Klasse. Nützlich für das Versenden von E-Mails wie [email protected] "no-reply @" + BaseSiteUrl Funktioniert auf jeder Website.

// get a sites base urll ex: example.com
public static string BaseSiteUrl
{
    get
    {
        HttpContext context = HttpContext.Current;
        string baseUrl = context.Request.Url.Authority + context.Request.ApplicationPath.TrimEnd('/');
        return baseUrl;
    }

}

Wenn Sie es in codebehind verwenden möchten, entfernen Sie den Kontext.

10
Prescient
Request.Url.GetLeftPart(UriPartial.Authority) + Request.FilePath + "?theme=blue";

dadurch erhalten Sie den vollständigen Pfad zu der Seite, auf der Sie sich gerade befinden. Habe ich im querystring hinzugefügt.

8
corey

Möchten Sie den Servernamen? Oder der Hostname?

Request.Url.Host ala Stephen

Dns.GetHostName - Servername

Request.Url hat Zugriff auf fast alles, was Sie über die angeforderte Seite wissen müssen.

8
Darren Kopp

Ich stehe vor dem gleichen Problem und bisher habe ich festgestellt:

new Uri(Request.Url,Request.ApplicationPath)

oder

Request.Url.GetLeftPart(UriPartial.Authority)+Request.ApplicationPath
5
pub

Request.Url.Host

3

Wenn Sie eine eindeutige Zeichenfolge am Ende einfügen möchten, ähnlich wie bei example.com?id=99999, verwenden Sie Folgendes

Dim rawUrl As String = Request.RawUrl.ToString()
2
Ben Petersen

Mit einer js-Datei können Sie Folgendes erfassen, das auch im Codebehind verwendet werden kann:

<script type="text/javascript">
    alert('Server: ' + window.location.hostname);
    alert('Full path: ' + window.location.href);
    alert('Virtual path: ' + window.location.pathname);
    alert('HTTP path: ' + 
        window.location.href.replace(window.location.pathname, ''));    
</script>
2
REEP