Два контроллера одновременно? - PullRequest
0 голосов
/ 12 сентября 2010

Привет, я понятия не имею, как использовать два разных контроллера одновременно и передавать данные в одно представление? Я имею в виду, у меня есть BlogController и StatisticsController. Статистика среди прочего показывает, сколько людей в сети, и я хотел, чтобы эти данные были на главной странице моего блога. Я вижу два способа, которыми это могло бы работать: -создать некоторый ContainerController и сделать объекты BlogController и StatisticsController и там манипулировать обоими методами создать объект StatisticsController в BlogController но я не уверен насчет этих решений. Любой совет?

1 Ответ

1 голос
/ 12 сентября 2010

Ваш вопрос крайне неясен. Из того, что я понимаю, у вас есть действие контроллера, возвращающее представление, которое должно включать некоторую информацию в части экрана. Эта информация доступна через другое действие контроллера, возвращающее частичное представление. Если это так, то помощник Html.RenderAction может быть именно тем, что вы ищете.

public class BlogController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
}

public class StatisticsController : Controller
{
    [ChildActionOnly]
    public ActionResult Index()
    {
        return PartialView();
    }
}

А в представлении Index контроллера блога есть статистика:

<%= Html.RenderAction("Index", "Statistics") %>

То же самое может быть достигнуто, включая непосредственное частичное представление без необходимости проходить через контроллер:

<%= Html.RenderPartial("~/views/statistics/index.ascx") %>

но преимущество RenderAction заключается в том, что если для статистики требуется какой-то конкретный репозиторий, было бы лучше пройти через контроллер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...