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
相关产品推荐
相关产品推荐

