【问题标题】:asp.NET MVC4 using partial views in partial viewsasp.NET MVC4 在局部视图中使用局部视图
【发布时间】:2013-03-29 10:14:25
【问题描述】:

假设我有 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 的索引(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 的动态变量中,但我觉得必须有更好的解决方案。

【问题讨论】:

  • 你不能把这三个都放在一个视图中吗?
  • 不,我想在其他地方重复使用它们。
  • 我的意思是在另一个视图中呈现所有三个部分,如下所示:@Html.Partial('partialview1') @Html.Partial('partialview2') @Html.Partial('partialview3')跨度>
  • 问题是,我调用这个异步,我不能写@Html.Partial,因为我用结果替换了我的主div,所以要么:我不能这样做,要么我忽略了能够调用@ 987654325@ 在我的 Home/Index.cshtml 中。我要试试。我会尽快通知你的。
  • RenderAction 成功了,但我认为它与您所说的基本相同:)非常感谢 :)

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


【解决方案1】:

【讨论】:

  • RenderAction 成功了。谢谢你救了我!!! :) 现在处理一切都容易多了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 1970-01-01
  • 2023-04-01
相关资源
最近更新 更多