Umbraco:在另一个模块中显示模块

时间:2014-08-14 14:58:38

标签: umbraco umbraco4

我使用的是Umbraco的第4版,并想知道是否有办法从其他模块渲染模块。

Root
=> Folder1
=>=> Page1
=>=>=> PageLayout
=>=>=>=> MainContentZone

=>=>=>=>=> MyMainModule

=>=>=>=>=>=> MyChildModule1
=>=>=>=>=>=> MyChildModule2
=>=>=>=>=>=> ...
=>=>=>=>=>=> MyChildModuleX

我想迭代MyMainModule中的子模块并将它们全部显示出来。 像这样的东西

@{
    var myLayoutHelper = new LayoutHelper(this);
    var modules = myLayoutHelper.CurrentModules;
}

@foreach (var mod in modules)
{
    <div>
        @myLayoutHelper.RenderModule(mod)
    </div>
}

有可能吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以从macroScript

调用其他宏脚本
@foreach(var mod in modules) 
{
    @RenderPage("~/MacroScripts/Mod-Detail.cshtml", mod.Id);
}

然后在Mod-Detail页面中你可以像这样选择id:

int myId = PageData[0];

<强>更新

对于那些在MVC模式下使用Umbraco v6的人尝试

@Html.Partial("PartialName")
@Html.CachedPartial("PartialViewName", model:myModel, cachedSeconds:60, cacheByPage:true, cacheByMember:false,   viewData:AViewDataDictionary)
@Umbraco.RenderMacro("MacroAlias")   // to render a macro