asp.net mvc: Agregue dinámicamente controladores secundarios / secundarios desde un controlador

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

Pregunta

En asp.net mvc, puede llamar / agregar fácilmente un controlador desde una vista, pero cuál es la forma más fácil de agregar hijos / subcontroladores desde un controlador. A lo que me refiero es a que quiero construir dinámicamente una lista de controladores secundarios desde el propio controlador, no desde la vista.

El patrón que tengo en mente se deriva del antiguo portal ibuyspy / dnn, en el que aparece una lista de módulos conectables que desea inyectar en la página. Cada módulo es, en sí mismo, un controlador, e ignora que es una solicitud secundaria. Pero, dnn usa el ui / views para inyectar los módulos, como donde quiero crear una lista de módulos en el controlador, luego le digo a la vista que los inyecte.

Gracias de antemano,

Jesse

¿Fue útil?

Solución

Si tiene una matriz de objetos en su modelo de vista que contiene información correspondiente a los módulos deseados, puede inyectarlos en la vista usando RenderAction de esta manera:

<div id="LeftColumn">
    <% foreach (module in Model.Modules) { 
        Html.RenderAction(module.ActionName, module.ControllerName, new {id = module.id}); 
    } %>
</div>

RenderAction es un método que llama a un método en un controlador e inyecta el resultado en la página en la ubicación donde se llama RenderAction. Forma parte del ASP.NET MVC Futures.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top