Asp.net بعثة التحقق المشتركة الانتاج الكاش لا تعمل مع RedirectToAction
-
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;
}
}
لا تنتمي إلى StackOverflow