Святой! Только если бы они это где-то документировали! Запись атрибутов кэша вывода MVC с 2009 года.

м проекте asp.net MVC, я включаю кэширование вывода на контроллере, как показано ниже

[OutputCache(Duration = 100, VaryByParam = "*", VaryByHeader = "X-Requested-With")]
public class CatalogController : BaseController
{
    public ActionResult Index(string seller)
    {
        // I do something
    }
}

он прекрасно работает, пока не создам свой собственный класс Route, как показано ниже

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;
    }

}

а затем, метод действия приметseller в качестве параметра. Я проверил это, всегда предоставляя разныеseller параметр, но он берет вывод из кэша вместо вызова метода.

настройка VaryByParam = "*" также зависит от RouteData.Values ​​в asp.net mvc?

Я использую ASP.Net 4 MVC 3 RC 2

Ответы на вопрос(2)

Ваш ответ на вопрос