aps.net mvc Razor读取wwwroot/configs文件夹下的所有 .json配置文件

using IdentityServer.Models;
using System.Collections.Generic;

namespace IdentityServer.Service
{
    /// <summary>
    /// 获取模版数据
    /// </summary>
    public class GetConfigData
    {
        private readonly IWebHostEnvironment _env;
        /// <summary>
        /// TemplateConfig 实体类文件
        /// </summary>
        public List<TemplateConfig> Config { get; set; }
        /// <summary>
        /// 默认构造
        /// </summary>
        public GetConfigData(IWebHostEnvironment env)
        {
            _env = env;
        }
        public List<TemplateConfig> GetTemplate()
        {
            // 组合文件路径
            string configPath = Path.Combine(
                _env.WebRootPath,
                "configs"
            );
            // 获取目录下所有的JSON文件
            var jsonFiles = Directory.GetFiles(configPath, "*.json");
            List<TemplateConfig> Configs = new List<TemplateConfig>();
            // 遍历所有JSON文件并读取内容
            foreach (var file in jsonFiles)
            {
                //读取文件内容
                string jsonContent = File.ReadAllText(file);
                //反序列化为实体
                var config = JsonConvert.DeserializeObject<TemplateConfig>(jsonContent);
                if (config != null)
                    Configs.Add(config);
            }
            return Configs;
        }
    }
}

在Razor页面模型中调用

using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Hosting;
using System.IO;
using System.Text.Json;

public class YourPageModel : PageModel
{
    public YourPageModel(IWebHostEnvironment env)
    {    
        var data = new GetConfigData(env).GetTemplate();
    }
}

 

posted @ 2025-03-19 09:39  龙卷风吹毁停车场  阅读(10)  评论(0)    收藏  举报