2009-12-15 148 views
1

我一直在我的視圖中使用<%和%>中的Url.Content,並且所有東西似乎都工作正常...然後從控制器我嘗試了以下,但它總是返回錯誤的路徑ASP.NET MVC:將虛擬路徑轉換爲實際路徑是錯誤的

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

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

基本上路徑shoudl爲c:\ VS2008 \來源\ MyAppName .....

但其返回C: \ MyAppName .....

所以其無效,

任何想法,爲什麼這是happning?有沒有解決辦法?

回答

2

這是正確的。我不知道爲什麼要添加C:\ MyApp ... \是絕對路徑。

你試過Server.MapPath嗎?

+0

謝謝...是的Server.MapPath工程 – 2009-12-15 15:15:07

5

這兩種方法僅用於客戶端通過Web服務器訪問內容的上下文中。要在內部讀取文件,在應用程序中需要使用Server.MapPath()或類似的方法來獲取磁盤上的物理路徑。

1

我有一個類似的問題鏈接到一些.css和圖像文件。我在http://www.stickfiguresoftware.com/node/46上寫了一篇關於這方面的博文,這可能會有所幫助,甚至還有一些我可以使用的示例代碼。

不知道這是完美的解決方案,但它爲我解決。