ASP.NET MVC:将virtualpath转换为actualpath是错误的

时间:2009-12-15 14:54:57

标签: c# asp.net asp.net-mvc

我一直在<%和%>中使用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 个答案:

答案 0 :(得分:5)

这两种方法仅用于客户端通过Web服务器访问内容的上下文中。要在内部读取文件,需要在应用程序中使用Server.MapPath()或类似的方法来获取磁盘上的物理路径。

答案 1 :(得分:2)

这是对的。我不确定为什么它会添加C:\但MyApp ... \是绝对路径。

您是否尝试过Server.MapPath?

答案 2 :(得分:1)

我遇到类似的问题,链接到一些.css和图像文件。我在http://www.stickfiguresoftware.com/node/46上写了一篇关于此内容的博客文章,可能会有所帮助,甚至还有一些示例代码可供我使用。

不确定这是完美的解决方案,但它对我有用。