2009-12-15 7 views
1

J'ai utilisé Url.Content à l'intérieur de <% et%> dans mes vues et tout semble fonctionner correctement ... Puis à partir de mon contrôleur, j'ai essayé ce qui suit , mais il retourne toujours le mauvais cheminASP.NET MVC: convertir virtualpath en chemin réel est faux

XDocument xdoc = XDocument.Load(Url.Content("~/content/xml/faq.xml")); 

et

XDocument xdoc = XDocument.Load(VirtualPathUtility.ToAbsolute("~/content/xml/faq.xml")); 

Fondamentalement, le chemin shoudl c: \ VS2008 \ Source \ MyAppName .....

mais son retour c: \ MyAppName .....

donc son invalide,

Toutes les idées pourquoi cela happning ?? Y at-il un travail autour?

Répondre

2

C'est exact. Je ne sais pas pourquoi il ajoute le C: \ mais MyApp ... \ est le chemin absolu.

Avez-vous essayé Server.MapPath?

+0

Merci ... Oui Serveur.MapPath fonctionne –

5

Ces deux méthodes sont uniquement destinées à être utilisées dans le contexte des clients accédant au contenu via votre serveur Web. Pour lire un fichier en interne, dans l'application, vous devez utiliser Server.MapPath() ou une méthode similaire pour obtenir le chemin physique sur votre disque.

1

J'avais un problème similaire liant à certains fichiers .css et image. J'ai écrit un billet de blog sur ce sujet au http://www.stickfiguresoftware.com/node/46 qui peut être utile et a même quelques exemples de code que je dois travailler.

Je ne suis pas sûr que ce soit la solution parfaite, mais cela a fonctionné pour moi.

Questions connexes