Привет, я не знаю, как использовать два разных контроллера одновременно и передавать данные на один вид? Я имею в виду, что у меня есть BlogController и StatisticsController. Статистика среди прочего показывает, сколько людей в сети, и я хотел, чтобы эти данные были на главной странице моего блога. Я могу видеть два способа, которыми он мог бы работать: -создать некоторый ContainerController и создать объекты BlogController и StatisticsController и там манипулировать обоими методами -создать объект StatisticsController в BlogController , но я не уверен в этих решениях. Есть рекомендации?Два контроллера одновременно?
0
A
ответ
1
Ваш вопрос очень неясен. Насколько я понимаю, у вас есть действие контроллера, возвращающее представление, которое должно содержать некоторую информацию на части экрана. Эта информация доступна с помощью другого действия контроллера, возвращающего частичный вид. Если это так, то помощник Html.RenderAction может быть именно тем, что вы ищете.
public class BlogController : Controller
{
public ActionResult Index()
{
return View();
}
}
public class StatisticsController : Controller
{
[ChildActionOnly]
public ActionResult Index()
{
return PartialView();
}
}
И в индексном контроллера блога включают статистику:
<%= Html.RenderAction("Index", "Statistics") %>
То же самое может быть достигнуто в том числе непосредственно частичный вид без необходимости прохождения через контроллер:
<%= Html.RenderPartial("~/views/statistics/index.ascx") %>
, но преимущество RenderAction заключается в том, что если статистика требует определенного репозитория, было бы лучше пройти через контроллер.