У меня есть веб-приложение, которое использовало Asp.net MVC2 .Я обновил его до MVC 3 и теперь обнаружил, что функция OutputCache больше не работает.Я создал простое действие Test, как показано ниже.
[OutputCache(Duration = 1000000, VaryByParam = "none")]
public virtual ActionResult CacheTest(string name)
{
string message = string.Format("{0}: Time is {1}", name, DateTime.Now.ToLongTimeString());
ViewData.Add("Message", message);
return View();
}
Это всегда дает текущее время , которое показывает, что оно не кэшировано .Я что-то здесь упускаю?
Дополнительная информация: Если я создаю новое приложение Mvc3, оно работает нормально.Это только в обновленном приложении, что у меня есть эта проблема.
Обновление: Я также использую Ninject.Если я перестаю использовать Ninject, OutputCache начинает работать.
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}.aspx/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
RegisterDependencyResolver();
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
protected void RegisterDependencyResolver()
{
var kernel = CreateKernel();
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
}
protected IKernel CreateKernel()
{
return new StandardKernel();
}
}