2013-04-07 112 views
0

我們假設我有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的動態變量,但我有一種感覺,必須有一個更好的方式解決。

+0

你不能只是把他們所有三個視圖? – 2013-04-07 08:22:02

+0

不,我想在其他地方重複使用它們。 – 2013-04-07 08:39:31

+0

我的意思是在另一個視圖,呈現所有三個partials像這樣:@ Html.Partial('partialview1')@ Html.Partial('partialview2')@ Html.Partial('partialview3') – 2013-04-07 08:43:47

回答