201 votes

Comment puis-je obtenir le baseurl du site ?

Je veux écrire une petite méthode d’assistance qui retourne l’url de base du site. C’est ce que je suis venu avec :

Y a-t-il une quelconque erreur dans ce que vous pouvez penser. Pouvez-vous améliorer sur cela ?

369voto

Frank Allenby Points 1135

Essaye ça:

 string baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority + 
    Request.ApplicationPath.TrimEnd('/') + "/";
 

177voto

Warlock Points 2253
<pre><code></code><p>C’est ça  ;)</p></pre>

7voto

cirrus Points 2354

Pour moi, @démoniste se présente comme la meilleure réponse jusqu'ici, mais j'ai toujours utilisé dans le passé;

string baseUrl = Request.Url.GetComponents(
    UriComponents.SchemeAndServer, UriFormat.UriEscaped)   

Ou dans un WebAPI contrôleur;

string baseUrl = Url.Request.RequestUri.GetComponents(
    UriComponents.SchemeAndServer, UriFormat.Unescaped)

ce qui est à portée de main afin que vous puissiez choisir ce que échapper format que vous voulez. Je ne suis pas clair pourquoi il y a deux implémentations différentes, et autant que je puisse en dire, cette méthode et @démoniste retour exactement le même résultat dans ce cas, mais il ressemble GetLeftPart() serait également travailler pour les non Uri du serveur est comme mailto tags par exemple.

7voto

rufo Points 1244

Je crois que les réponses ci-dessus ne considère pas lorsque le site n’est pas à la racine du site Web.

Il s’agit d’un contrôleur WebApi :

7voto

Daniel A. White Points 91889

Il s’agit d’une méthode infaillible beaucoup plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X