ASP.NET MVC التخزين المؤقت تختلف من المعلمة عمل تحكم
-
21-08-2019 - |
سؤال
هل هناك أي طريقة يمكن أن تختلف التخزين المؤقت من قبل معلمة عمل تحكم استخدام في outputcache السمة؟ لدينا varybyparam التي لن تعمل إذا هي جزء لا يتجزأ المعلمات بلدي داخل URL بطريقة بقية.
المحلول
والتخزين المؤقت يعمل بهذه الطريقة افتراضيا. عناوين مختلفة تعطي مواقع مخبأ مختلفة. ربما هناك شيء مفقود من سؤالك، ولكن، وكما ذكر، وأنها تعمل بالفعل بهذه الطريقة.
نصائح أخرى
وه أيضا مهمة لتحقيق في طريقة العمل أن 'VaryByParam' لا تعني 'فاري من قبل المعلمات يتم تمريرها إلى أن طريقة العمل ". وهو ما يعني "تختلف من المعلمات التي تم تمريرها إلى أن طريقة العمل التي تنشأ كمعلمات HTTP.
[OutputCache(CacheProfile = "ContentPage", VaryByParam = "mode")]
public ActionResult Index(string key, string mode)
{
}
ودعونا نقول الطريق لهذا الأسلوب العمل هو:
routes.MapRoute(
"video-route-short",
"video/{key}",
new { controller = "Video", action = "Index", key = (string)null }
);
وكما يقول كريج أعلاه، المعلمة الأساسية هي جزء من URL وبالتالي التخزين المؤقت لا تنطبق عليه - لذلك هي في الأساس المخزنة مؤقتا دائما.
والمعلمة الوضع الذي سيتم إرسالها عبر "?mode=1
'نوع ينطبق على التخزين المؤقت.