আপনার এজ্যাক্স পদ্ধতিতে জিকুয়েরি ফলাফলগুলি ক্যাশে করছে না তা নিশ্চিত করতে নিম্নলিখিতটি লিখুন:
$.ajax({
cache: false
//rest of your ajax setup
});
বা এমভিসিতে ক্যাচিং প্রতিরোধ করতে আমরা আমাদের নিজস্ব বৈশিষ্ট্য তৈরি করেছি, আপনিও এটি করতে পারেন। আমাদের কোড এখানে:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public sealed class NoCacheAttribute : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
filterContext.HttpContext.Response.Cache.SetNoStore();
base.OnResultExecuting(filterContext);
}
}
তারপরে আপনার কন্ট্রোলারটি দিয়ে কেবল সজ্জিত করুন [NoCache]
। বা সবার জন্য এটি করার জন্য আপনি কেবল বেস ক্লাসের শ্রেণিতে এই বৈশিষ্ট্যটি রেখে দিতে পারেন যে আপনি এখানে যেমন আমাদের নিয়ন্ত্রণকারীর (আপনার যদি থাকে) থেকে উত্তরাধিকারী হন:
[NoCache]
public class ControllerBase : Controller, IControllerBase
আপনি যদি পুরো কন্ট্রোলারটিকে সজ্জিত না করে ক্যাশেড করতে সক্ষম না হন তবে এই বৈশিষ্ট্যটি সহ কয়েকটি ক্রিয়াও সাজাতে পারেন।
আপনার শ্রেণিতে বা ক্রিয়াকলাপটি NoCache
যদি এটি আপনার ব্রাউজারে রেন্ডার করা হয়নি এবং আপনি এটি কাজ করছে তা পরীক্ষা করতে চান, তবে মনে রাখবেন যে পরিবর্তনগুলি সংকলনের পরে আপনার ব্রাউজারে একটি "হার্ড রিফ্রেশ" (Ctrl + F5) করা দরকার do আপনি এটি না করা পর্যন্ত আপনার ব্রাউজারটি পুরানো ক্যাশেড সংস্করণ রাখবে এবং এটিকে একটি "সাধারণ রিফ্রেশ" (এফ 5) দিয়ে রিফ্রেশ করবে না।