Вы можете использовать помощники Html.Action или Html.RenderAction .Например, вы могли бы поместить следующее где-нибудь на вашей главной странице:
<%= Html.Action("TotalSalesThisMonth", "SomeController") %>
Это выполнит действие контроллера, отобразит представление и вставит сгенерированный HTML в указанное место на главной странице.Вы также можете ограничить использование этого действия только как дочернее действие, украсив его атрибутом [ChildActionOnly]
:
[ChildActionOnly]
public ActionResult TotalSalesThisMonth()
{
var totalSalesModel = SalesService.GetTotalSalesThisMonth()
return View(totalSalesModel);
}
И, наконец, если внутри действия контроллера вы хотите проверить, вызывается ли оно как нормальноедействие или как дочернее действие, вы можете сделать это:
public ActionResult TotalSalesThisMonth()
{
var totalSalesModel = SalesService.GetTotalSalesThisMonth()
if (ControllerContext.IsChildAction)
{
return View("foo", totalSalesModel);
}
return View("bar", totalSalesModel);
}