ASP.NET MVC: преобразование виртуального пути в фактический путь неверно - PullRequest
1 голос
/ 15 декабря 2009

Я использую Url.Content внутри <% и%> в моих представлениях, и все, кажется, работает нормально ... Затем, отказавшись от контроллера, я попробовал следующее, но он всегда возвращает неправильный путь

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

и

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

В основном путь должен быть c: \ Vs2008 \ Source \ MyAppName .....

но возвращается c: \ MyAppName .....

Так что это недействительно,

Есть идеи, почему это счастье ?? Есть ли работа вокруг?

Ответы [ 3 ]

5 голосов
/ 15 декабря 2009

Эти два метода предназначены только для использования клиентами в контексте доступа к контенту через ваш веб-сервер. Для внутреннего чтения файла в приложении вам необходимо использовать Server.MapPath () или аналогичный метод, чтобы получить физический путь на вашем диске.

2 голосов
/ 15 декабря 2009

Это верно. Я не уверен, почему он добавляет C: \, но MyApp ... \ - это абсолютный путь.

Вы пробовали Server.MapPath?

1 голос
/ 15 декабря 2009

У меня была похожая проблема со ссылками на некоторые файлы .css и изображения. Я написал пост в блоге по этому адресу http://www.stickfiguresoftware.com/node/46, который может быть полезен и даже содержит некоторый пример кода, который я получил для работы.

Не уверен, что это идеальное решение, но оно сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...