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

PiranhaCMS自定义页面类型字段未在编辑表单显示的问题

PiranhaCMS自定义页面类型字段不显示的排查与解决

核心问题排查与修复

你的代码和配置存在几个关键问题,逐一修正即可解决:

1. 字段属性未声明为virtual

PiranhaCMS依赖动态代理机制生成编辑界面,所有标记[Field]的属性必须声明为虚拟属性,否则框架无法识别并渲染对应的编辑器。

修正后的代码:

[PageType(Title = "Home page")]
[ContentTypeRoute(Title = "Default", Route = "/homepage")]
public class HomePage : Page<HomePage>
{
    [Field(Title = "活动名称")]
    public virtual StringField EventName { get; set; }

    [Field(Title = "活动标题")]
    public virtual StringField EventTitle { get; set; }
}
  • 统一使用Piranha提供的字段类型(如StringField),避免混用.NET原生类型(如string),确保字段与编辑器正确绑定。
  • 给[Field]添加Title参数,可指定编辑器界面显示的字段名称,提升后台编辑的可读性。

2. 页面类型未注册到Piranha服务

必须在应用启动时,将包含自定义页面类型的程序集注册到Piranha,否则CMS后台无法扫描到你的自定义页面类型。

在Program.cs的服务配置中添加:

builder.Services.AddPiranha(options =>
{
    // 保留原有配置项(如文件存储、编辑器设置等)
    options.AddAssembly(typeof(HomePage).Assembly); // 注册包含HomePage的程序集
});

3. 重启应用清除缓存

修改页面类型代码后,务必重启应用程序,确保新的页面类型定义被加载,避免CMS后台使用旧的缓存配置。

额外验证点

  • 确认使用的PiranhaCMS版本与官方文档匹配,不同版本的API要求可能存在差异。
  • 若使用Region,需确保Region属性同样声明为virtual,并正确嵌套在页面类中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:54:59