एएसपी.नेट एमवीसी 3 में [आउटपुट कैशएट्रिब्यूट] के साथ, आप लचीलेपन के अच्छे सौदे के साथ कैश आउटपुट कर सकते हैं। मेजबान नाम से बाल्टी कैशिंग में 'VaryByHeader' प्रॉपर्टी का लाभ उठाने के लिए उपयोगी है। उदाहरण के लिए:बच्चे के कार्यों पर आउटपुट कैशएट्रिब्यूट के साथ VaryByHeader
[OutputCache(Duration = 60, VaryByHeader = "host")]
public ActionResult Foo()
{
return this.View();
}
हालांकि, बाल कार्यों पर, आप 'VaryByHeader' लागू नहीं कर सकते हैं। ढांचा फेंकता निम्न अपवाद: बच्चे कार्यों के लिए
OutputCacheAttribute केवल अवधि, VaryByCustom, और VaryByParam मूल्यों का समर्थन करता है। कृपया कैशप्रोफाइल, स्थान, नोस्टोर, एसक्लड पर निर्भरता, VaryByContentEncoding, या बाल क्रियाओं के लिए VaryByHeader मान सेट न करें।
मेरा सवाल है, क्यों?
यही कारण है कि हम एक बच्चे की कार्रवाई में VaryByHeader नहीं कर सकते हैं क्योंकि यह एक विरोधाभासी भिन्नता प्रदान करेगा, क्योंकि मूल कार्रवाई ने एक अलग VaryByHeader मान निर्दिष्ट किया हो सकता है?
यदि मैं मेजबाननाम के आधार पर अलग-अलग बाल क्रियाओं को कैश करना चाहता हूं, तो इसका क्या अर्थ है, और मैं इसके बारे में कैसे जाऊं?
बस उत्सुक, बच्चे कार्रवाई कर एक और HTTP पाने का कारण? हो सकता है कि इस विचार के डिजाइनरों ने कहा कि चूंकि कोई _second_ पोस्ट वापस नहीं है, इसलिए अलग-अलग http शीर्षलेखों द्वारा कैश करने की आवश्यकता नहीं होगी। –
नहीं, बच्चे के कार्य एक ही अनुरोध के भीतर सिर्फ एक अमूर्त हैं। –