2010-11-01 11 views
5

मैं AJAX और आंशिक दृश्य (ascx) का उपयोग कर डेटा की सूची लोड करता हूं लेकिन मुझे कोई समस्या है: मेरी प्रतिक्रिया कैश की गई है। मैं Responce.Cache.SetExpires लिखने की कोशिश (DateTime.Now.AddDays (-1)) ascx फ़ाइल में लेकिन यहasp.net mvc अक्षम AJAX कैश

ASP.NET WebForms में मैं Responce.Cache.SetExpires लिख कर इस समाधान कर लिया है मदद नहीं कर रहा है (DateTime.Now.AddDays (-1)) codebehind में। तो मैं जानना चाहता हूं कि मैं कैश अक्षम करने के लिए Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) कहां लिख सकता हूं।

+0

यह नहीं कैश्ड किया जाना चाहिए जब तक आप स्पष्ट यह नियंत्रक कार्रवाई के निर्देश पर तो बताओ। शायद यह ब्राउज़र है? मैंने सुना है कि यानी कैशिंग अजाक्स हो जाता है (लेकिन पोस्ट नहीं)। – RPM1984

+0

हाँ पेज ब्राउज़र द्वारा कैश किया गया है। लेकिन SetExpires का उपयोग कर हल करना आसान है। मैं एमईसी के साथ SetExpires कैसे सेट कर सकते हैं? – takayoshi

उत्तर

12

jQuery का उपयोग करें?

$.ajax({ 
cache:false, 
... 
}); 

या नियंत्रक/एक्शन सेट आउटपुट कैशएट्रिब्यूट।

OutputCacheAttribute Class (System.Web.Mvc)

+0

कैसे आउटपुट कैशएट्रिब्यूट कैश को अक्षम करने में मदद करेगा ?? –

+0

यह विशेषता नियंत्रण http प्रतिक्रिया शीर्षलेख (कैश-नियंत्रण, समाप्त हो जाती है आदि)। – takepara

+1

मेरा मतलब था कि कोड कोड देने के लिए यह अच्छा होगा कि आउटपुट कैश एट्रिब्यूट का उपयोग कैसे करें: [आउटपुट कैश (नोस्टोर = सत्य, अवधि = 0, VaryByParam = "*")] –

0

आपको नियंत्रक विधि में AJAX POST का उपयोग करना चाहिए जो JsonResult को वापस लौटाता है यदि आप सर्वर से डेटा को असीमित रूप से लोड करना चाहते हैं।

+1

यदि आप * डेटा प्राप्त कर रहे हैं, तो आपको * POST का उपयोग नहीं करना चाहिए। सीआरयूडी के रूप में HTTP विधियों को देखें: पोस्ट = बनाएं, प्राप्त करें = पढ़ें, पुट = अपडेट करें, हटाएं = हटाएं –

+0

आर्वे की टिप्पणी सही नहीं है। एएसपी.नेट एमवीसी आरईएसटी संचालन का समर्थन नहीं करता है, और पैरामीटर के आधार पर डेटा पुनर्प्राप्त करने के लिए POST विधि का उपयोग करना काफी स्वीकार्य है। – dhochee