我使用的是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>
}
有可能吗?
答案 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