asp.net mvc:Динамическое добавление дочерних / вспомогательных контроллеров из контроллера

StackOverflow https://stackoverflow.com/questions/1419577

Вопрос

В 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top