如何在没有控制器的 Razor 页面中找到 wwwroot 的物理路径?
How can I find the physical path of wwwroot, in a Razor page without a controller?
我需要在列表中创建一个文件列表,这在过去很容易..但在 Asp.Net Core 2 Razor 页面上则不然。我找不到获取 "wwwroot" 内 "Poems" 的物理路径的方法。
我发现很多使用 IHostingEnvironment
的例子,但总是在控制器中。
但是我没有控制器,不需要控制器,只需要后面的页面和代码..
哦,我多么想念 WebForms!
没有控制器的 Razor 页面的解决方案是什么?
提前致谢。
您可以像在控制器中一样在 Razor 页面中创建它。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace Viber.Pages
{
public class TestModel : PageModel
{
private Microsoft.AspNetCore.Hosting.IHostingEnvironment _env;
public TestModel(Microsoft.AspNetCore.Hosting.IHostingEnvironment env)
{
_env = env;
}
public void OnGet()
{
// use the _env here
}
}
}
您可以使用 PageModel 的承包商来注入 IHostingEnvironment。
您可以使用 IWebHostEnvironment class。代码块如下:
private readonly IWebHostEnvironment _webHostEnvironment;
public HomeController(
IWebHostEnvironment webHostEnvironment)
{
_webHostEnvironment = webHostEnvironment;
}
public IActionResult Index()
{
string rootPath = _webHostEnvironment.WebRootPath
return View();
}
我需要在列表中创建一个文件列表,这在过去很容易..但在 Asp.Net Core 2 Razor 页面上则不然。我找不到获取 "wwwroot" 内 "Poems" 的物理路径的方法。
我发现很多使用 IHostingEnvironment
的例子,但总是在控制器中。
但是我没有控制器,不需要控制器,只需要后面的页面和代码..
哦,我多么想念 WebForms!
没有控制器的 Razor 页面的解决方案是什么?
提前致谢。
您可以像在控制器中一样在 Razor 页面中创建它。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace Viber.Pages
{
public class TestModel : PageModel
{
private Microsoft.AspNetCore.Hosting.IHostingEnvironment _env;
public TestModel(Microsoft.AspNetCore.Hosting.IHostingEnvironment env)
{
_env = env;
}
public void OnGet()
{
// use the _env here
}
}
}
您可以使用 PageModel 的承包商来注入 IHostingEnvironment。
您可以使用 IWebHostEnvironment class。代码块如下:
private readonly IWebHostEnvironment _webHostEnvironment;
public HomeController(
IWebHostEnvironment webHostEnvironment)
{
_webHostEnvironment = webHostEnvironment;
}
public IActionResult Index()
{
string rootPath = _webHostEnvironment.WebRootPath
return View();
}