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

Dev*_*emi 4 c# asp.net-core

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

 JSON = System.IO.File.ReadAllText("companyInfo.json");
Run Code Online (Sandbox Code Playgroud)

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

BRA*_*mel 10

您可以尝试使用以下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; 
        }
    }
Run Code Online (Sandbox Code Playgroud)

更新contentrootPath会给你应用程序的基本根源

像这样的ContentRoot: C:\MyApp\注意事项取决于操作系统,您可以创建一个数据文件夹并用于Path.Combine构建您的绝对路径

但您可以使用WebRootPath

string webRootPath = _hostingEnvironment.WebRootPath; 
Run Code Online (Sandbox Code Playgroud)

如果您希望从Web根目录提供服务,该根目录是从中提供静态内容的根目录,


小智 5

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

string filePath = HttpContext.Server.MapPath("~/App_Data/companyInfo.json");
Run Code Online (Sandbox Code Playgroud)

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

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