C# 显示带有用户数据的弹出菜单(Orchard)

C# 显示带有用户数据的弹出菜单(Orchard),c#,menu,orchardcms,C#,Menu,Orchardcms,我正在努力改进一个自定义部分,它是我们公司Orchard网站的一部分。它是一个弹出菜单,显示用户的用户名、配置文件图像和菜单。目前,用户名和配置文件图像是从我们编写的配置文件模块中检索的,菜单部分只是模板中硬编码的静态文本。我想将此更改为使用Orchard菜单来获取菜单项。我一直在尝试通过获取a菜单小部件,然后将该内容呈现到形状的一部分,以便在模板中显示来实现这一点: WidgetPart widget = _widgetService.GetWidgets().Where(w => w.

我正在努力改进一个自定义部分,它是我们公司Orchard网站的一部分。它是一个弹出菜单,显示用户的用户名、配置文件图像和菜单。目前,用户名和配置文件图像是从我们编写的配置文件模块中检索的,菜单部分只是模板中硬编码的静态文本。我想将此更改为使用Orchard菜单来获取菜单项。我一直在尝试通过获取a菜单小部件,然后将该内容呈现到形状的一部分,以便在模板中显示来实现这一点:

WidgetPart widget = _widgetService.GetWidgets().Where(w => w.Title == "Profile Menu").SingleOrDefault();
if (widget == null)
    throw new Exception("Not found");
dynamic menuText = _contentManager.BuildDisplay((ContentItem)widget.ContentItem); 

//...

return ContentShape("Parts_ProfileHeader", () => shapeHelper.Parts_ProfileHeader(
    FullName: fullname, 
    ImageUrl: imageUrl,
    ImageHeight: imageHeight,
    ImageWidth: imageWidth,
    Menu: menuText
    ));
但这导致了stackoverflow异常。我还尝试使用MenuService检索menupart并将其传递给模板,但这只显示了菜单标题

该模板显示特定于用户的信息,还包含.showBalloon和.hideBalloon调用以弹出菜单


有没有更好的方法来做到这一点,或者有没有一种方法可以完全用果园的部分来做到这一点

只要看看你的代码现在的样子。请将其格式化,以便我们可以实际阅读:谢谢你,吉姆,帮我修好了。