You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 6 Razor中如何从XML文件读取GOLD值

解决方案

1. 确认XML文件结构

先确保你的DefaultValues.xml结构符合层级要求,示例如下:

<defaultvalues>
  <UserDetails>
    <!-- 其他业务节点 -->
  </UserDetails>
  <configuration>
    <GOLD>003</GOLD>
    <!-- 其他配置节点 -->
  </configuration>
</defaultvalues>

2. 调整XML模型类

原XMLInfo仅包含GOLD属性无法匹配XML层级结构,需添加嵌套类对应节点关系:

public class XMLInfo
{
    public Configuration configuration { get; set; }
}

public class Configuration
{
    public string GOLD { get; set; }
}

3. 在Program.cs中加载XML并注册服务

将XML文件加载为实例,注册为单例服务供全局注入使用:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddRazorPages();

// 构建XML文件路径(确保文件放置在项目根目录)
var xmlPath = Path.Combine(builder.Environment.ContentRootPath, "DefaultValues.xml");
var serializer = new System.Xml.Serialization.XmlSerializer(typeof(XMLInfo));

// 读取并反序列化XML
using var streamReader = new StreamReader(xmlPath);
var xmlData = (XMLInfo)serializer.Deserialize(streamReader);

// 注册为单例服务
builder.Services.AddSingleton(xmlData);

var app = builder.Build();

// 常规中间件配置
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();

app.Run();

4. 在LoadColor页面模型中获取GOLD值

通过构造函数注入XML实例,在OnGet方法中读取对应值:

public class LoadColorModel : PageModel
{
    private readonly XMLInfo _xmlConfig;
    public string GoldValue { get; set; }

    public LoadColorModel(XMLInfo xmlConfig)
    {
        _xmlConfig = xmlConfig;
    }

    public void OnGet()
    {
        // 读取configuration节点下的GOLD值
        GoldValue = _xmlConfig.configuration?.GOLD;
    }
}

5. (可选)在Razor视图中展示值

如果需要在页面上显示,直接绑定模型属性即可:

@page
@model LoadColorModel

<div>GOLD节点值:@Model.GoldValue</div>

内容的提问来源于stack exchange,提问作者ahmed abdelaziz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:17:17