gpt4 book ai didi

c# - 如何获取渲染用户控制路径,即使用渲染 ID 的 Ascx 文件

转载 作者:太空宇宙 更新时间:2023-11-03 12:29:14 25 4
gpt4 key购买 nike

我需要从 RenderingID 获取 .ascx 用户控制文件系统路径。下面的代码为我提供了一个项目的渲染列表,但它没有返回 RenderingReference 数据对象的任何属性中的用户控件的路径。

public RenderingReference[] GetListOfSublayouts(Sitecore.Data.ID itemId)
{
Sitecore.Layouts.RenderingReference[] renderings = null;

Item item = Sitecore.Context.Database.GetItem(Sitecore.Data.ID.Parse(itemId));
if (item != null)
{
renderings = item.Visualization.GetRenderings(Sitecore.Context.Device, true);
}

return renderings;
}

最佳答案

  1. RenderingReference 对象具有 RenderingItem 属性。
  2. RenderingItem 具有 InnerItem 属性。
  3. InnerItem 属于Item 类型,是Sitecore 树中的子布局项。它有 Path 字段,其中包含 ascx 文件的路径。

所以代码将是这样的:

RenderingReference firstReference = renderings[0];
RenderingItem renderingItem = firstReference.RenderingItem;
Item innerItem = renderingItem.InnerItem;
string ascxPath = innerItem["Path"];

此代码未经测试,但应该为您指明正确的方向。

您应该添加空检查并测试模板(例如,如果 innerItem 使用 /sitecore/templates/System/Layout/Renderings/Sublayout 模板)。

关于c# - 如何获取渲染用户控制路径,即使用渲染 ID 的 Ascx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43453601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com