从其他控制器渲染局部视图

gdo*_*ica 62 c# asp.net-mvc partial-views razor asp.net-mvc-3

有没有办法在我的控制器A视图中呈现来自其他控制器B的局部视图?

编辑:我写了一个仅适用于两个控制器的局部视图,我不想将它复制到两个Views文件夹中.
我希望每次呈现视图时都显示部分视图,而不是在发生某些事情之后.

tva*_*son 77

  1. 您可以通过将控制器放入Views/Shared文件夹来共享控制器之间的视图.然后,每个控制器都可以按名称呈现该视图.
  2. 您可以使用在当前视图中渲染局部视图(可以在(1)中的控制器之间共享)Html.Partial().
  3. 您可以使用Html.Action()在不同控制器上调用操作并在当前视图中呈现结果.
  4. 在呈现页面后,您可以使用AJAX从其他控制器加载局部视图.

  • 5.您还可以通过提供完整路径@Html.Partial("〜/ Views/Partials/Location.cshtml",Model)将视图呈现为部分视图 (5认同)

Pit*_*all 44

@Html.Partial("~/Views/ControllerB/Index.cshtml")
Run Code Online (Sandbox Code Playgroud)

  • 最简单的解决方案 :d (3认同)

Ste*_*eve 17

是,

return PartialView("/path/view.cshtml");
Run Code Online (Sandbox Code Playgroud)

你只需要计算出路径部分.

或者,您可以将部分视图放在views/shared中,然后返回:

return PartialView("view.cshtml");
Run Code Online (Sandbox Code Playgroud)