Obțineți adresa URL a paginii ASP.Net în cod-în spatele

Am o pagină ASP.Net care va fi găzduită pe câteva servere diferite și vreau să obțin URL-ul paginii (sau chiar mai bine: site-ul în care este găzduită pagina) ca un șir pentru utilizarea în codul din spate . Vreo idee?

0
adăugat autor Learning, sursa
Vedeți această soluție: stackoverflow.com/questions/567590/…
adăugat autor Kimball Robinson, sursa

10 răspunsuri

Doriți numele serverului? Sau numele gazdei?

Request.Url.Host ala Stephen

Dns.GetHostName - Server name

Request.Url will have access to most everything you'll need to know about the page being requested.

0
adăugat

Folosesc acest lucru în codul meu într-o clasă personalizată. Vine la îndemână pentru a trimite e-mailuri ca [email protected] "fără răspuns @" + BaseSiteUrl Funcționează bine pe orice site.

// 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;
    }

}

Dacă doriți să-l utilizați în codebehind a scăpa de context.

0
adăugat

Dacă doriți să includeți în final un șir unic, similar cu example.com?id=99999, utilizați următoarele

Dim rawUrl As String = Request.RawUrl.ToString()
0
adăugat

Dacă doriți doar schema și autoritatea să facă parte din cerere (protocol, gazdă și port)

Request.Url.GetLeftPart(UriPartial.Authority)
0
adăugat
O soluție chiar mai bună este afișată la adresa stackoverflow.com/questions/567590/…
adăugat autor Kimball Robinson, sursa
@Kimball Nu sunt sigur că șiruri de concatenare împreună este o soluție mai bună.
adăugat autor WDuffy, sursa

Request.Url.Host

0
adăugat

Foloseste asta:

Request.Url.AbsoluteUri

Acest lucru vă va oferi calea completă (inclusiv http://.. .)

0
adăugat
Rețineți că aceasta va include și partea de interogare (? Key = value ....)
adăugat autor Marcel, sursa
Acest lucru nu funcționează dacă aplicația nu este găzduită pe rădăcina serverului, ci într-un director. Dacă aplicația este găzduită pe www.contoso.com/app/, aceasta va reveni doar la www.contoso.com
adăugat autor linkerro, sursa

Mă confrunt cu aceeași problemă și am găsit până acum:

new Uri(Request.Url,Request.ApplicationPath)

sau

Request.Url.GetLeftPart(UriPartial.Authsauity)+Request.ApplicationPath
0
adăugat
Request.Url.GetLeftPart(UriPartial.Authority) + Request.FilePath + "?theme=blue";

care vă va oferi calea completă spre pagina pe care vă aflați. Am adăugat în coloana de interogare.

0
adăugat

eu folosesc

Request.Url.GetLeftPart(UriPartial.Authority) +
        VirtualPathUtility.ToAbsolute("~/")
0
adăugat

Folosind un fișier JS puteți captura următoarele, care pot fi folosite și în codul de cod:

<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>
0
adăugat