我們假設我有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