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

Fluid Parser迭代循环正常但无法显示属性值问题求助

问题原因与解决方案

核心问题

Fluid模板引擎默认的成员访问策略不会自动映射.NET的PascalCase(首字母大写)属性到模板中的同名引用,它默认遵循JavaScript风格的驼峰命名匹配规则,或者需要显式注册允许访问的成员。

解决方案1:修改模板属性名为驼峰

把模板中的item.Str改为item.str(小写开头),Fluid会自动将.NET的Str属性映射为驼峰式的str供模板访问:

{% for item in StrObjects %} String: {{ item.str }} {% endfor %}

解决方案2:显式注册成员访问规则

在创建TemplateContext后,注册StrObj的属性访问权限,让Fluid可以直接识别Str属性:

var ctx = new Fluid.TemplateContext(testObj);
// 注册StrObj的Str属性
ctx.MemberAccessStrategy.Register<StrObj>(o => o.Str);
// 如果要批量允许所有公共属性,可以用:
// ctx.MemberAccessStrategy.Register<StrObj>(strategy => strategy.AllowAll());

验证说明

两种方案都能让代码输出预期结果:String: test1 String: test2 String: test3 String: test4。循环能执行说明StrObjects的集合访问正常,只是子对象的属性没有被正确识别,本质是Fluid的成员访问策略需要与.NET属性的命名匹配或显式授权。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:02:41