هل هناك طريقة لتجاهل OutputCache الصفحة الرئيسية في ASP.NET MVC؟

StackOverflow https://stackoverflow.com/questions/2099785

سؤال

لديّ إجراء يقوم بإرجاع طريقة عرض مع صفحة رئيسية مع عنصر تحكم مستخدم تسجيل الدخول في الأعلى. عندما أقوم بتعيين OutputCache ، فإنه يقوم بتخزين الإخراج بأكمله بما في ذلك المستخدم الحالي ، لذلك سيرى الجميع من كان آخر شخص يضغط على الصفحة لتحديث ذاكرة التخزين المؤقت كمستخدم الحالي. هل هناك طريقة لمنع تضمين الصفحة الرئيسية في ذاكرة التخزين المؤقت؟

أنا أستخدم الكود التالي:

[OutputCache(Duration=3000, VaryByParam={params})]  
public ActionResult {actionName}({params})  
{  
    {codeGoesHere}  
}
هل كانت مفيدة؟

المحلول

كان هناك مفهوم ""التخزين المؤقت دونات"(باستثناء أجزاء من الصفحة من ذاكرة التخزين المؤقت للإخراج) لكنها لم تصل إلى ASP.NET MVC 1. للحصول على حل لمشكلتك يمكنك تجربتها هذا الحل.

نصائح أخرى

يرتبط ذاكرة التخزين المؤقت للإخراج مع وحدة التحكم ، وليس العرض. قد تُرجع وحدة التحكم طرق عرض مختلفة ، بناءً على المعلمات التي تم تمريرها. قد يتم أيضًا التخزين المؤقت عن طريق المعلمات (كما هو الحال في مثالك). عندما يتم تخزين نتيجة وحدة تحكم ، فإن هذه القيمة المخزنة هي HTML التي تم إنشاؤها من العرض (بما في ذلك الصفحة الرئيسية إن وجدت). لذا ، فإن الإجابة المختصرة هي ، لا ، لا يمكنك استبعاد الصفحة الرئيسية من ذاكرة التخزين المؤقت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top