O VaryByParam = "*" também lê RouteData.Values?
no meu projeto asp.net mvc, habilito o cache de saída em um controlador como abaixo
[OutputCache(Duration = 100, VaryByParam = "*", VaryByHeader = "X-Requested-With")]
public class CatalogController : BaseController
{
public ActionResult Index(string seller)
{
// I do something
}
}
funciona muito bem, até criar minha própria classe de rota como abaixo
public class MyRoute : Route
{
// there is a constructor here..
// I override this method..
// just to add one data called 'seller' to RouteData
public override RouteData GetRouteData(HttpContextBase httpContext)
{
var data = base.GetRouteData(httpContext);
if (data == null) return null;
var seller = DoSomeMagicHere();
// add seller
data.Values.Add("seller", seller);
return data;
}
}
e então, o método de ação levaráseller
como parâmetro Eu o testei sempre fornecendo diferentesseller
parâmetro, mas recebe a saída do cache em vez de chamar o método
a configuração de VaryByParam = "*" também varia de acordo com RouteData.Values, no asp.net mvc?
Estou usando o ASP.Net 4 MVC 3 RC 2