Как я могу найти физический путь к 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();
        }     
Другие вопросы по тегам