asp.NET MVC4在部分视图中使用部分视图

时间:2013-04-07 08:19:49

标签: asp.net asp.net-mvc partial-views

假设我有3个自定义控制器:AController,BController和CControler以及一个默认的HomeController。前三个控制器中的每一个都有一个非常独特的局部视图,我们将它们命名为APartial,BPartial,CPartial,这些都是使用AFunction,BFunction和CFunction调用的,模板看起来像:

public ActionResult XFunction
{
    /*put some data into a ViewBag*/
    return PartialView("XPartial");
}

分别是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的动态变量中,但我觉得必须有更好的解决方案。

1 个答案:

答案 0 :(得分:1)