如何在视图中引用另一个控制器的局部视图?

时间:2011-08-01 02:23:48

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

标题几乎说明了我的问题。

我在控制器(Action1)中有一个视图(例如,Foo),在另一个控制器(Action2)中有另一个视图(Bar)。在Action1视图中,我想使用Html.PartialHtml.RenderPartial来调用Action2的视图。

我知道我可以在Html.RenderAction中使用Action1,但是(我认为)会创建Bar控制器并完成整个控制器/动作解析周期,我不希望如此,因为这可能效率较低。

所以,我的目标是我想重用Action2的视角。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

考虑将部分移至 Views \ Shared 文件夹。

然后你可以从任何地方渲染它:

E.g:

<强>剃刀:

@Html.Partial("SharedView")

<强> ASPX:

<%: Html.Partial("SharedView") %>

如果您不想这样做,请尽可能多地将主要部分标记到自定义显示模板中,然后在两个视图中重复使用。

是的,您对@Html.Action通过请求管道的权利,@Html.Partial没有。