Визуализировать частичный вид (с действием контроллера) из другого вида

У меня есть макет, содержащий древовидную структуру. Древовидное представление заполняется AddressBookController и отображается на каждой странице с @RenderPage("addressbook.cshtml") (в настоящее время оно находится в Shared). Проблема в том, что у меня есть тесная связь между представлением и контроллером, так как в верхней части моего AddressBook.cshtml у меня есть следующий код:

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

Как я могу отобразить частичный вид ИЗ контроллера, чтобы я мог отображать его как обычный вид?


person Chris    schedule 14.08.2013    source источник


Ответы (2)


Вы можете использовать дочернее действие и помощник Html.Action. Фил Хаак написал хороший пост в блоге о дочерних действиях здесь: http://haacked.com/archive/2009/11/17/aspnetmvc2-render-action.aspx

person Darin Dimitrov    schedule 14.08.2013

Создайте действие контроллера, которое возвращает PartialViewResult

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

а затем отобразите это на своей странице, используя @Html.Action("MyAction")

person Owen Pauling    schedule 06.06.2016