我想通过ASP.NET MVC _Layout.cshtml页面中的部分视图_CacheData.cshtml显示来自HttpContext.Current.Cache的一些数据。我写了一个包装器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中,但这感觉不对。建议?
答案 0 :(得分:2)
创建子控制器操作,您可以将缓存中的数据放入视图模型中,并使用Html.Action()
渲染部分视图。