Как я могу найти физический путь к wwwroot на странице Razor без контроллера?
Мне нужно сделать список файлов в списке, который раньше был простым... но не на страницах Asp.Net Core 2 Razor. Я не могу найти способ получить физический путь к "Стихам", который находится внутри "wwwroot". Я нашел много примеров, используя IHostingEnvironment
но всегда в контроллере. Но у меня нет контроллера, он мне не нужен, только страница и код позади..
О, как я скучаю по WebForms!
Какое решение для Razor Page без контроллера?
Заранее спасибо.
2 ответа
Решение
Вы можете сделать это в Razor Page так же, как в контроллере.
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. Блок кода приведен ниже:
private readonly IWebHostEnvironment _webHostEnvironment;
public HomeController(
IWebHostEnvironment webHostEnvironment)
{
_webHostEnvironment = webHostEnvironment;
}
public IActionResult Index()
{
string rootPath = _webHostEnvironment.WebRootPath
return View();
}