Asp.net mvc 从另一个视图渲染局部视图(使用控制器操作)
我有一个包含树视图的布局。treeview由一个Asp.net mvc 从另一个视图渲染局部视图(使用控制器操作),asp.net-mvc,razor,renderpartial,asp.net-mvc-controller,Asp.net Mvc,Razor,Renderpartial,Asp.net Mvc Controller,我有一个包含树视图的布局。treeview由一个AddressBookController填充,并通过@RenderPage(“addressbook.cshtml”)呈现到每个页面中(它当前位于共享)。问题是视图和控制器之间存在紧密耦合,如AddressBook.cshtml顶部所示。我有以下代码: @{ var controller = new EstateManagerUI.Controllers.AddressBookController(); var topLe
AddressBookController
填充,并通过@RenderPage(“addressbook.cshtml”)
呈现到每个页面中(它当前位于共享
)。问题是视图和控制器之间存在紧密耦合,如AddressBook.cshtml顶部所示。我有以下代码:
@{
var controller = new EstateManagerUI.Controllers.AddressBookController();
var topLevelFolder = controller.GetAddressBook(0);
}
如何从控制器渲染局部视图,以便像普通视图一样渲染它?您可以使用子操作和
Html.action
帮助程序。Phil Haack在这里写了一篇很好的关于子操作的博文:创建一个返回PartialViewResult
public ActionResult MyAction()
{
// do some stuff
return PartialView("_MyPartialView", myModel);
}
然后使用@Html.Action(“MyAction”)