我在.NET MVC中,我希望像这样阅读一个JSON文件:
JSON = System.IO.File.ReadAllText("companyInfo.json");
然而,我无法走上正轨。我不关心我把json文件放在哪里,所以我要求建议放置它的地方以及要使用的路径字符串。
答案 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
执行此操作。