2016-07-16 17 views
0

Ich habe outputcaching in jsonresult Typ in MVC-Anwendung verwendet.Ausgabe-Cache-Cache nicht mit Cache löschen mit varybyparam

Hier ist mein Code

[Output (Dauer = 20, VaryByParam = "sid")] public JsonResult GetListValue (bool sid)

Also, wenn Werte in sid geändert, was Ausgabecache nicht variiert mit neuen Werten, dass es die Methode überhaupt nicht trifft. Es holt immer die alten Cache-Werte. Kannst du mir helfen, was mit der Methode schief gelaufen ist?

Antwort

0

Der Mechanismus, der VaryByParam verwendet, wirkt sich speziell auf die Querystring- oder Post-Parameter der tatsächlichen RAW-HTTP-Anforderung aus und hat keine Kenntnis von URL-Routings, die diese RAW-Anforderung auf ein anderes Formular abbilden. In Ihrem Fall werden die Parameter id oder quotitid überhaupt nicht angezeigt (da sie sich nicht in den Querystrings oder Posts der rohen Anfragen befinden).

Es wird jedoch bemerken, dass die URL selbst (vor jedem '?', Einschließlich des Namens) ist anders, und variieren Caching darauf.

Möglicherweise müssen Sie stattdessen VaryByCustom verwenden. Ein Beispiel finden Sie in here. Und es gibt ein sehr ähnliches SO-Frage-Beispiel here.