【发布时间】:2011-05-26 22:01:50
【问题描述】:
我想在我的 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,但这感觉不对。有什么建议吗?
【问题讨论】:
标签: asp.net-mvc-3 dependency-injection viewmodel ninject partial-views