2008-11-27 21 views
11

Estoy aprendiendo ASP.NET MVC y me molesta un problema.ASP.NET MVC OutputCache no funciona para URI raíz

En el HomeController, la acción Index tiene el atributo OutputCache, pero parece que no funciona.

[HandleError] 
public class HomeController : Controller 
{ 
    [OutputCache(Duration=5, VaryByParam="none")] 
    public ActionResult Index() 
    { 
     ViewData["Title"] = "Home Page" + DateTime.Now; 
     ViewData["Message"] = "Welcome to ASP.NET MVC! " + DateTime.Now; 

     return View(); 
    } 
} 

Después de unos cuantos minutos tratando, he encontrado que es debido a la forma accedo a la acción. Si tengo acceso a él a través de "http://localhost:3573/", el caché de salida no funciona. Sin embargo, si tengo acceso a él con "http://localhost:3575/Home/Index", el caché de salida funciona.

¿Alguien sabe alguna solución para hacer que la acción de controlador predeterminada se pueda descartar?

Gracias.

+0

Estoy viendo el mismo problema aquí. –

+0

¿Alguno de ustedes usa Chrome? He notado algo raro en el almacenamiento en memoria caché de Chrome –

+0

visto en FF3 – dove

Respuesta

7

Creo que esto es un error en ASP.NET MVC. Hemos registrado el problema en nuestra base de datos e investigaremos una solución para este problema.

Gracias, Eilon

+1

También corregirá el error por el que al establecer VaryByParam en "Ninguno" se emitirá el encabezado de respuesta HTTP "Variar: *", que es lo contrario de lo que debería suceder? – bzlm

+1

@Eilon Aún sigo viendo esto como un problema, ¿tiene alguna recomendación para almacenar en caché un uri raíz? aparte de redirigir a/home;) – dove

1

usando VarByParam = "" parece que funcione

1

De acuerdo con mis contactos en Microsoft, el problema desaparece por completo si se quita el archivo Default.aspx de la raíz de su sitio, o, si es absolutamente necesario que lo tenga, asegúrese de utilizar el que se proporciona con la última versión de ASP.NET MVC.

Cuestiones relacionadas