asp.net mvc: Ajout dynamique de contrôleurs enfants / sous-contrôleurs à partir d'un contrôleur

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

Question

Dans asp.net mvc, vous pouvez facilement appeler / ajouter un contrôleur depuis une vue, mais quel est le moyen le plus simple d’ajouter des enfants / sous-contrôleurs à partir d’un contrôleur. Ce que je veux dire, c’est que je veux créer de manière dynamique une liste de contrôleurs enfants à partir du contrôleur lui-même, et non de la vue.

Le modèle que j'ai à l'esprit est dérivé de l'ancien portail ibuyspy / dnn, dans lequel vous obtenez une liste de modules enfichables que vous souhaitez injecter dans la page. Chaque module est lui-même un contrôleur et ignore qu’il s’agit d’une requête enfant. Mais dnn utilise ui / views pour injecter les modules, comme pour créer une liste de modules dans le contrôleur, puis indiquez à la vue de les injecter.

Merci d'avance,

Jesse

Était-ce utile?

La solution

Si votre modèle de vue contient un tableau d'objets contenant des informations correspondant aux modules souhaités, vous pouvez les injecter dans la vue à l'aide de RenderAction, comme suit:

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

RenderAction est une méthode qui appelle une méthode sur un contrôleur et injecte le résultat dans la page à l'emplacement où RenderAction est appelé. Il fait partie de Assemblée ASP.NET MVC Futures.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top