ASP.NET MVC зависимость для инъекций частичного представления данных - PullRequest
1 голос
/ 27 мая 2011

Я хочу отобразить некоторые данные из HttpContext.Current.Cache через частичное представление _CacheData.cshtml на моей странице ASP.NET MVC _Layout.cshtml.Я написал оболочку ICacheManager, чтобы добавить ее в мои контроллеры.ICacheManager также имеет свою собственную зависимость от IFooRepository

public class CacheManager : ICacheManager
{
    public CacheManager(IFooRepository repo, System.Web.Caching.Cache cache)
    { ... }
}

Я использую пакет Ninject.MVC3 nuget, поэтому вот мой RegisterServices

private static void(IKernel kernel)
{
    kernel.Bind<IFooRepository>().To<FooRepository>();
    kernel.Bind<ICacheManager>().To<CacheManager>().WithConstructorArgument("cache", x => HttpContext.Current.Cache);
}

Это прекрасно работает для моих контроллеров, но какЛи я вводить CacheManager в частичное представление?Там нет контроллера для _CacheData.cshtml.Я могу получить CacheManager в базовом контроллере и поместить его в ViewBag, но это не так.Предложения?

1 Ответ

2 голосов
/ 27 мая 2011

Создайте дочернее действие контроллера, где вы помещаете данные из кэша в модель представления и визуализируете ваше частичное представление с помощью Html.Action().

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