261 votes

Microsoft Web API : Comment voulez-vous faire un Server.MapPath ?

Puisque Microsoft Web API n’est pas MVC, vous ne pouvez pas faire quelque chose comme ceci :

ni ce

parce que ce sont dans l’espace de noms System.Web, pas l’espace de noms System.Web.Http.

Alors, comment vous comprendre le chemin du serveur relative à l’API Web ? J’ai l’habitude de faire quelque chose comme ceci dans MVC :

Qui me donnerait le chemin d’accès absolu sur le disque :

510voto

StuartLC Points 35534

Vous pouvez utiliser HostingEnvironment.MapPath , dans un contexte où System.Web objets comme HttpContext.Current ne sont pas disponibles e.g aussi à partir d'une méthode statique).

var mappedPath = System.Web.Hosting.HostingEnvironment.MapPath("~/SomePath");

Voir aussi Quelle est la différence entre le Serveur.MapPath et HostingEnvironment.MapPath?

17voto

ArgeKumandan Points 48
string root = HttpContext.Current.Server.MapPath("~/App_Data");

1voto

sellotape Points 68

Je ne peux pas dire le contexte que vous fournissez, mais si c’est quelque chose que vous devez juste faire au démarrage de l’application, vous pouvez toujours utiliser dans , par exemple en `` .

Je réponds à votre question directe ; le déjà mentionné `` est probablement la meilleure solution.

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