asp.net Mvc: Dynamisch Kind / sub-Controller von einem Controller hinzufügen
-
07-07-2019 - |
Frage
In asp.net Mvc, können Sie einfach anrufen / einen Controller aus einer Sicht hinzufügen, aber was ist der einfachste Weg, Kind / Subcontrollern von einem Controller hinzuzufügen. Was Im an immer ist, ich will, um dynamisch eine Liste der untergeordneten Steuerungen baut aus dem Controller selbst, nicht aus der Sicht.
Das Muster, das ich im Sinne habe, ist aus dem alt IBuySpy portal / dnn abgeleitet, wo Sie mit einer Liste von steckbaren Modulen kommen, die Sie in der Seite injizieren wollen. Jedes Modul ist, selbst, ein Controller und ist unwissend, dass es ein Kind Anforderung ist. Aber dnn verwendet die ui / Ansichten, die die Module zu injizieren, wie, wo ich möchte eine Liste der Module in der Steuerung erstellen, dann sagen die Ansicht, sie zu injizieren.
Vielen Dank im Voraus,
Jesse
Lösung
Wenn Sie ein Array von Objekten in Ihrer Ansicht nach Modell haben, die Informationen entsprechend den gewünschten Module enthält, können Sie sie in die Ansicht mit Render wie diese injizieren:
<div id="LeftColumn">
<% foreach (module in Model.Modules) {
Html.RenderAction(module.ActionName, module.ControllerName, new {id = module.id});
} %>
</div>
Render ist ein Verfahren, das ein Verfahren auf einem Controller ruft und spritzt das Ergebnis in der Seite an der Stelle, wo Render genannt wird. Es ist Teil der ASP.NET MVC Futures Montage.