簡體   English   中英

如何在沒有控制器的 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 Page 的解決方案是什么?

提前致謝。

您可以像在控制器中那樣在 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();
        }     

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM