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

请求指引:在Umbraco 11中创建自定义Block替代Umbraco 8网格编辑器

迁移Umbraco 8自定义Grid布局到Umbraco 11 Block Grid的实现指南

1. 先吃透Block Grid核心逻辑

Umbraco 11的Block Grid是替代原Grid的全新体系,核心是Block Type(可复用的内容组件)和Block Grid数据类型(管理Block的容器):

  • Block Type对应你原Grid自定义编辑器里的每个布局项,是独立的内容单元
  • Block Grid数据类型用来定义Block的排列规则(比如列数、布局约束)

2. 定义自定义Block Type

直接在后台操作:

  • 进入Settings → Block Types,新建Block Type,命名对应原Grid的自定义布局项
  • 给Block Type添加属性组和字段,把原Grid编辑器里的自定义字段(文本、图片、样式参数等)完全迁移过来
  • 若原Grid有后端自定义逻辑(比如字段值转换),现在要实现IBlockValueConverter接口来处理Block的数据转换

3. 自定义Block后台编辑器(若需复刻原Grid交互)

如果原Grid有自定义编辑器界面,需要迁移到Umbraco 11的React生态:

  • 开发自定义Property Editor:实现IPropertyEditorConfiguration接口定义配置项,编写React组件复刻原编辑器的交互逻辑
  • 将自定义Property Editor注册到Umbraco的编辑器集合,关联到Block Type的对应属性上
  • 若只是简单样式调整,优先用Umbraco自带的属性编辑器组合,减少自定义开发量

4. 前端渲染适配

替换原Grid的渲染逻辑:

  • 原@Html.GetGridHtml()替换为@Html.GetBlockGridHtml()
  • 在Views/BlockGrid/Components目录下为每个自定义Block Type创建视图模板(命名规则:[BlockTypeAlias].cshtml),把原Grid的布局渲染逻辑迁移到这个模板里
  • 若需要全局控制渲染流程,可实现IBlockGridRenderer接口自定义渲染逻辑

5. 数据迁移(从Grid到Block Grid)

写脚本批量转换数据:

  • 遍历所有使用原Grid的文档节点,读取Grid的JSON数据
  • 将原Grid的sections/rows/areas结构映射为Block Grid的layout和content结构,确保每个原Grid组件对应一个Block实例
  • 测试转换后的数据在后台和前端的展示效果

6. 测试与验证

  • 在后台创建测试内容,验证自定义Block的编辑流程是否和原Grid一致
  • 检查前端渲染的布局、样式是否匹配原效果
  • 调试数据转换逻辑和后端处理代码,确保没有遗漏字段或逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:06:27