asp.net mvc:从控制器动态添加子/子控制器
-
07-07-2019 - |
题
在asp.net mvc中,您可以轻松地从视图中调用/添加控制器,但是从控制器添加子控制器的最简单方法是什么。我得到的是我想从控制器本身动态构建一个子控制器列表,而不是从视图中。
我想到的模式来自旧的ibuyspy portal / dnn,在那里你想出了一个可插入页面的可插入模块列表。每个模块本身都是一个控制器,并且不知道它是一个子请求。但是,dnn使用ui / views来注入模块,就像我想在控制器中创建模块列表一样,然后告诉视图注入它们。
提前致谢,
杰西
解决方案
如果视图模型中有一个包含与所需模块相对应的信息的对象数组,则可以使用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 Futures程序集的一部分。一>
不隶属于 StackOverflow