0

我使用 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>
}

可能吗?

4

1 回答 1

0

Yes, you can call an other macroScript from a macroScript

@foreach(var mod in modules) 
{
    @RenderPage("~/MacroScripts/Mod-Detail.cshtml", mod.Id);
}

and then in the Mod-Detail page you can pick up the id like this:

int myId = PageData[0];

Update:

For those using Umbraco v6 in MVC modus try

@Html.Partial("PartialName")
@Html.CachedPartial("PartialViewName", model:myModel, cachedSeconds:60, cacheByPage:true, cacheByMember:false,   viewData:AViewDataDictionary)
@Umbraco.RenderMacro("MacroAlias")   // to render a macro
于 2014-08-15T15:36:05.860 回答