1
我想通过我的ASP.NET MVC _Layout.cshtml页面中的部分视图_CacheData.cshtml显示来自HttpContext.Current.Cache的一些数据。我写了一个封装ICacheManager,所以我可以将它注入到我的控制器中。的ICacheManager也有IFooRepositoryASP.NET MVC依赖注入局部视图数据
自己的依赖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中,但这并不合适。建议?
这几乎是我最终做的,似乎工作正常。你能解释控制器和子控制器之间的区别吗?除了您可以将[ChildActionOnly]放在您的动作上以外,我没有看到任何区别 – kenwarner 2011-05-26 22:47:03
没有区别,您可以将任何控制器上的子动作。我通常为我在主/布局页面中使用的子操作创建一个MasterController。 – Necros 2011-05-27 00:47:06