我们假设我有3个自定义控制器:AController,BController和CControler以及一个默认HomeController。每个前三控制器对他们有一个非常独特的局部视图,让我们命名他们APartial,BPartial,CPartial而这些被调用时机能缺失,BFunction和CFunction与模板看起来像:asp.NET MVC4在部分视图中使用部分视图
public ActionResult XFunction
{
/*put some data into a ViewBag*/
return PartialView("XPartial");
}
Respectivelly,APartial。 cshtml,BPartial.cshtml,CPartial.cshtml位于Shared
文件夹中。 当HomeController的Index(ActionResult方法)被调用时,在一个页面中返回所有三个视图的最佳方法是什么?我试图呈现每个这样的:
using (StringWriter sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, "XFunction");
ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
return MvcHtmlString.Create(sw.GetStringBuilder().ToString());
}
然后将每个进入ViewBag的动态变量,但我有一种感觉,必须有一个更好的方式解决。
你不能只是把他们所有三个视图? – 2013-04-07 08:22:02
不,我想在其他地方重复使用它们。 – 2013-04-07 08:39:31
我的意思是在另一个视图,呈现所有三个partials像这样:@ Html.Partial('partialview1')@ Html.Partial('partialview2')@ Html.Partial('partialview3') – 2013-04-07 08:43:47