2010-08-18 3 views
1

Pour cette ligne de code;C# Je veux l'URL, pas le chemin physique

string link = HttpContext.Current.Server.MapPath("/Contract/Details/" + this.ContractId.ToString()); 

Je reçois le chemin d'accès physique sur le lecteur C.

Ce que je veux est l'URL, à savoir

http://localhost:1234/Contract/Details/1 

Comment puis-je obtenir?

Répondre

4
// Use the Uri constructor to form a URL relative to the current page 
Uri linkUri = new Uri(HttpContext.Current.Request.Url, "/Contract/Details/" + this.ContractId.ToString()); 
string link = linkUri.ToString(); 
+0

Ceci est la bonne réponse. – arame3333

4

essayez ceci:

string url = HttpContext.Current.Request.Url.AbsoluteUri; 
+0

cela retournera l'URL de la requête en cours, peut-être que ce n'est pas un "/ Contract/Details/1" –

+0

Ceci est incorrect. Antonio et Tim ont raison à ce sujet. – arame3333

0

Uri base = nouveau Uri ("http://localhost:1234/";

Fichier Uri = nouvel Uri (hôte, "/ Contrat/Détails /" + this.ContractId.ToString());

chaîne URL = fichier.AbsoluteUri;

+0

Tim Robinson réponse est mieux parce qu'il utilise l'hôte de demande en cours –

Questions connexes