Ext*_*kun 3 c# asp.net asp.net-mvc asp.net-mvc-3
我们正在为我们的项目开发一个"插件"架构,在那里扩展软件的功能,客户端可以编写自己的控制器并将其包含在项目中.(插件将根据客户端将添加到模式中的表生成不同的输出).
通过控制器动作中的动作来访问插件,比如说 /reports/get/?type=spending
因此,在这种情况下,操作必须将控制器放置在"插件"区域内并调用索引操作(例如areas/plugin/spending/index).如何在操作内部调用此操作/reports/get/?type=spending并获取其输出?
Html.RenderAction方法用于在视图中呈现其他动作的输出.从中获益,在控制器中也是如此
using System.Web.Mvc.Html;
public void Index()
{
StringBuilder resultContainer = new StringBuilder();
StringWriter sw = new StringWriter(resultContainer);
ViewContext viewContext = new ViewContext(ControllerContext, new WebFormView(ControllerContext, "fakePath"), ViewData, TempData, sw);
HtmlHelper helper = new HtmlHelper(viewContext, new ViewPage());
helper.RenderAction("create");
sw.Flush();
sw.Close();
resultContainer.ToString(); //"This is output from Create action"
}
public ActionResult Create()
{
return Content("This is output from Create action");
}
Run Code Online (Sandbox Code Playgroud)
实际上,RenderAction可以传递您想要的所有路由数据,而不仅仅是动作名称
| 归档时间: |
|
| 查看次数: |
9642 次 |
| 最近记录: |