用途:这份资料用于指导在 Umbraco 后台中实现工作区(Workspace)。工作区是针对特定实体类型的专用编辑环境,可编辑内容、媒体、成员等实体,并保存与已发布版本分离的草稿副本。
主要能力:工作区支持多种扩展类型,包括上下文(Context)、视图(Views)、操作(Actions)和页脚应用(Footer Apps)。资料重点区分两种工作区类型:kind: 'default' 适用于静态页面或根工作区,不参与树选择状态、无路由参数、上下文较简单;kind: 'routable' 适用于按唯一 ID 编辑实体的场景,支持树选择状态与 edit/:unique 路由,其上下文带有 unique 可观察对象。用于树项目导航时须使用 routable,否则在项目间切换时选择状态不更新、同类型项目间导航失效,甚至出现永久加载。
使用方式:实现 routable 工作区需要创建继承 UmbContextBase 的工作区上下文类,注册 UmbWorkspaceRouteManager 路由,并在视图中通过 consumeContext 消费 UMB_WORKSPACE_CONTEXT,观察 unique 以响应导航。清单中需声明 workspace 与 workspaceView,视图中通过条件 Umb.Condition.WorkspaceAlias 匹配工作区别名。getEntityType() 返回值须与树项目的 entityType 一致。扩展还需被主 Umbraco 项目引用:在工作目录查找 .csproj,只有一个实例时直接添加引用,多个时询问用户,找不到时询问路径。
参考位置:Umbraco 源码中的示例包括 workspace-context-counter、workspace-context-initial-name、workspace-view-hint。
限制与注意事项:资料强调实现前应使用 WebFetch 获取最新官方文档,因为 API 与模式可能已变化;具体实体类型、所需视图与操作需先行确认。文档地址包括工作区主文档、Workspace Context、Workspace Views、Workspace Actions、Foundation 与 Extension Registry 页面。可关联的基础技能有 umbraco-context-api、umbraco-state-management、umbraco-umbraco-element、umbraco-controllers、umbraco-tree。资料未提供版本兼容范围、性能数据与收费标准。