के रूप में अन्य उत्तर कहा है, डोनट कैशिंग MVC में काम करता है "की तरह" का उपयोग कर उन्हें कैश।
मैं यह सिफारिश नहीं होगा - के बजाय मैं एक alterantive प्रदान करेंगे:
आप उपयोगकर्ताओं के लिए एक दृश्य प्रोफ़ाइल है, यह "UserProfile.aspx" कहते हैं।
अब इस दृश्य पर, आपके पास "हालिया पोस्ट" के लिए एक अनुभाग सहित HTML का एक गुच्छा है।
अब, मुझे लगता है कि यह उपयोगकर्ता के लिए अंतिम 10 पोस्ट की तरह कुछ है।
क्या मैं करना एक आंशिक दृश्य में यह HTML/अनुभाग डाल दिया है होता है, और एक अलग कार्रवाई विधि के माध्यम से सेवा करते हैं, उर्फ एक PartialViewResult:
public class UserProfileController
{
[HttpGet]
[OutputCache (Duration=60)]
public ActionResult Index() // core user details
{
var userProfileModel = somewhere.GetSomething();
return View(userProfileModel);
}
[HttpGet]
public PartialViewResult DisplayRecentPosts(User user)
{
var recentPosts = somewhere.GetRecentPosts(user);
return PartialViewResult(recentPosts);
}
}
का उपयोग कर आंशिक दृश्य बाहर प्रस्तुत jQuery:
<script type="text/javascript">
$(function() {
$.get(
"/User/DisplayRecentPosts",
user, // get from the Model binding
function (data) { $("#target").html(data) } // target div for partial
);
});
</script>
इस तरह, आप कोर विवरण (इंडेक्स()) के लिए आउटपुट कैश को अधिकतम कर सकते हैं, लेकिन हाल के पोस्ट कैश नहीं किए गए हैं। (या आप एक बहुत छोटी कैश अवधि हो सकती है)।
आंशिक प्रतिपादन की jQuery विधि रेंडरपार्टियल से अलग है, इस तरह आप सीधे नियंत्रक से HTML की सेवा कर रहे हैं, ताकि आप तदनुसार आउटपुट कैशिंग को नियंत्रित कर सकें।
अंतिम परिणाम डोनट कैशिंग (पेज कैश किए गए पृष्ठ के कुछ हिस्सों, अन्य नहीं) के समान ही है।
यह भी देखें http://stackoverflow.com/questions/4082826/when-and-how-to-go-about-performing-caching-in-asp-net-mvc/4091232#4091232 –
किसी को भी इसका जवाब पता है? मेरे अपडेट के लिए? – Rana
आपको रेंडरपार्टियल (http://msdn.microsoft.com/en-us/library/dd470561.aspx) के लिए चौथे ओवरलोड का उपयोग करने की आवश्यकता है: 'Html.RenderPartial ("UserPosts.ascx", Model.UserPosts, new ViewDataDictionary {मॉडल = Model.UserPosts} ' – RPM1984