asp.net mvc:Динамическое добавление дочерних / вспомогательных контроллеров из контроллера
-
07-07-2019 - |
Вопрос
В asp.net mvc вы можете легко вызвать / добавить контроллер из представления, но каков самый простой способ добавить дочерние элементы / субконтроллеры из контроллера.К чему я клоню, так это к тому, что я хочу динамически создавать список дочерних контроллеров изнутри самого контроллера, а не из представления.
Шаблон, который я имею в виду, заимствован из старого портала ibuyspy / dnn, где вы получаете список подключаемых модулей, которые вы хотите внедрить на страницу.Каждый модуль сам по себе является контроллером и не знает, что это дочерний запрос.Но dnn использует пользовательский интерфейс / представления для внедрения модулей, например, там, где я хочу создать список модулей в контроллере, а затем указать представлению внедрить их.
Заранее спасибо,
Джесси
Решение
Если у вас есть массив объектов в вашей модели представления, который содержит информацию, соответствующую желаемым модулям, вы можете ввести их в представление, используя RenderAction следующим образом:
<div id="LeftColumn">
<% foreach (module in Model.Modules) {
Html.RenderAction(module.ActionName, module.ControllerName, new {id = module.id});
} %>
</div>
RenderAction - это метод, который вызывает метод на контроллере и вводит результат на страницу в том месте, где вызывается RenderAction.Это часть ASP.NET Сборка фьючерсов MVC.