咨询:在2sxc Razor模板中获取内嵌内容应用的父上下文唯一标识
解决方案:在2sxc内嵌应用中获取父上下文唯一标识
针对你遇到的内嵌应用继承父模块ModuleID、无法获取稳定父上下文标识的问题,基于当前使用的2sxc v17.07版本,有两种可靠的解决方法:
方法1:获取父内容块ID(对应sc-content-block的data-cb-id)
当应用作为内嵌内容嵌入富文本时,当前内嵌块的ParentId属性直接对应父内容块的唯一ID,这个值稳定且不随URL变化。在Razor模板中可直接调用:
@CmsContext.Block.ParentId
你可以用这个值替代ModuleID,作为数据过滤的关联标识,确保内嵌应用能正确关联到父上下文的内容块。
方法2:直接获取父实体ID(针对Blog文章场景)
如果内嵌应用是嵌入在Blog文章的富文本字段中,父上下文的内容实体就是当前Blog文章,此时可直接获取文章的实体ID:
@CmsContext.Content.EntityId
这个值是Blog文章的唯一标识,完全可以用来过滤与该文章关联的数据,替代之前依赖URL片段的临时方案。
验证方式
你可以在内嵌应用的Razor模板中添加以下代码,输出并确认获取到的值:
Parent Content Block ID: @CmsContext.Block.ParentId<br> Parent Blog Post Entity ID: @CmsContext.Content.EntityId
内容的提问来源于stack exchange,提问作者Yankee516
相关产品推荐
相关产品推荐

