Asp.NET核心json文件或数据路径 - 放在哪里

时间:2017-07-20 20:01:35

标签: c# asp.net-core

我在.NET MVC中,我希望像这样阅读一个JSON文件:

 JSON = System.IO.File.ReadAllText("companyInfo.json");

然而,我无法走上正轨。我不关心我把json文件放在哪里,所以我要求建议放置它的地方以及要使用的路径字符串。

2 个答案:

答案 0 :(得分:9)

您可以尝试将以下内容与asp.net核心

一起使用
 public class HomeController : Controller
    {
        private readonly IHostingEnvironment _hostingEnvironment;

        public HomeController(IHostingEnvironment hostingEnvironment)
        {
            _hostingEnvironment = hostingEnvironment;
        }

        public ActionResult Index()
        {

            string contentRootPath = _hostingEnvironment.ContentRootPath;
               var   JSON = System.IO.File.ReadAllText( contentRootPath + "/companyInfo.json");
            return null; 
        }
    }

<强>更新 contentrootPath将为您提供应用程序的基础

ContentRoot: C:\MyApp\这样的东西注意它取决于操作系统 您可以创建数据文件夹并使用Path.Combine来构建绝对路径

但您可以使用 WebRootPath

string webRootPath = _hostingEnvironment.WebRootPath; 

如果您希望从作为提供静态内容的根目录的Web根目录提供它,

答案 1 :(得分:4)

放置它的合适位置是项目根目录中的App_Data文件夹。如果此文件夹不存在,请创建它。这个文件夹有点特别,因为浏览器可以直接请求该文件夹中的任何内容;它只能通过代码访问。获取App_Data的路径非常简单:

string filePath = HttpContext.Server.MapPath("~/App_Data/companyInfo.json");

使用该路径,您可以打开文件进行阅读。

可以使用您想要的任何文件夹,但您需要采取措施防止浏览器直接请求该文件。 ASP.Net会自动为您App_Data执行此操作。