2

我有一个包含树视图的布局。树视图由一个填充AddressBookController并呈现到每个页面中@RenderPage("addressbook.cshtml")(它当前位于Shared)。这样做的问题是我在视图和控制器之间有紧密的耦合,因为在我的 AddressBook.cshtml 的顶部我有以下代码:

@{    
    var controller = new EstateManagerUI.Controllers.AddressBookController();
    var topLevelFolder = controller.GetAddressBook(0);
}

如何从控制器渲染局部视图,以便像普通视图一样渲染它?

4

2 回答 2

1

您可以使用子动作和Html.Action助手。Phil Haack 在这里写了一篇关于子动作的不错的博客文章:http: //haacked.com/archive/2009/11/17/aspnetmvc2-render-action.aspx

于 2013-08-14T14:11:34.057 回答
1

创建一个返回一个控制器动作PartialViewResult

public ActionResult MyAction()
{
    // do some stuff
    return PartialView("_MyPartialView", myModel);
}

然后使用@Html.Action("MyAction")

于 2016-06-06T16:31:00.857 回答