Asp.net بعثة التحقق المشتركة الانتاج الكاش لا تعمل مع RedirectToAction

StackOverflow https://stackoverflow.com/questions/2061734

  •  20-09-2019
  •  | 
  •  

سؤال

لحالتي، ولدي وحدة تحكم، والذي الاستعلام ثم إلى الأمام المستخدم باستخدام RedirectResult، وهو ما فعلته بالفعل رأس "الموقع".

وبعد ذلك تطبق ذاكرة التخزين المؤقت إلى وحدة تحكم مثل هذا

[OutputCache(Duration = int.MaxValue, VaryByParam = "none", NoStore=false)]

وأنا أحاول أن اعادة تشغيل الصفحة، وتحقق لي في بلدي ينق التعريف، ما زلت قادرا على رؤية كل الاستعلام التي يتم تشغيلها الصفحة إعادة في مثل 1S.

وكيف يمكنني منع هذا من أن يحدث؟

هل كانت مفيدة؟

المحلول

ويمكنك القيام به ذاكرة التخزين المؤقت اليدوي، بدلا من استخدام مخبأ الانتاج، والتي سوف مخبأ الاستفسارات الخاصة بك:

public IQueryable<Category> FindAllCategories()
{
    if (HttpContext.Current.Cache["AllCategories"] != null)
        return (IQueryable<Category>)HttpContext.Current.Cache["AllCategories"];
    else
    {
        IQueryable<Category> allCats =  from c in db.Categories
                                          orderby c.Name
                                          select c;

        // set cache
        HttpContext.Current.Cache.Add("AllCategories", allCats, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 0, 30, 0, 0), System.Web.Caching.CacheItemPriority.Default, null);
        return allCats;
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top