【问题标题】:Path to content folder in asp.net mvcasp.net mvc 中内容文件夹的路径
【发布时间】:2015-05-20 13:32:30
【问题描述】:

我正在尝试在我的程序中读取一个 .txt 文件:

using (StreamReader sr = new StreamReader(VirtualPathUtility.ToAbsolute("~/Content/txt/FamilyNames.txt")))
                    {
                        String line = sr.ReadToEnd();
                        Debug.WriteLine(line);
                    }

然而,这给了我以下不正确的路径:

C:\Content\txt\FamilyNames.txt

当我搜索这个时,我想出了许多解决方案,例如:

Server.MapPath();

但这似乎是过时的代码?因为它在我的 Visual Studio 中无法识别,所以无法导入它...

那么在内容文件夹中获取文件路径的正确解决方案是什么?

【问题讨论】:

  • 也许你在控制器之外。要在控制器之外使用 Server.MapPath 您需要像 HttpContext.Current.Server.MapPath() 一样使用它
  • 你在哪里打电话?
  • HttpContext.Current.Server.MapPath() 做到了,简单... :)
  • ToAbsolute() ?这不是您正在寻找的相对路径吗?
  • 是的,这只是我尝试的众多解决方案之一。

标签: c# asp.net-mvc


【解决方案1】:

Server.MapPath 需要一个 HTTPContext。请改用System.Web.Hosting.HostingEnvironment.MapPath

using (StreamReader sr = new StreamReader(HostingEnvironment.MapPath("~/Content/txt/FamilyNames.txt")))

【讨论】:

    【解决方案2】:

    你试过了吗:

     StreamReader(VirtualPathUtility.ToAppRelative("~/Content/txt/FamilyNames.txt")))
    

    【讨论】:

      猜你喜欢
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多