2010-07-26 21 views
5

में वैश्विक कार्रवाई फ़िल्टर क्या एक वैश्विक एक्शन फ़िल्टर बनाना संभव है जो एएसपी.नेट एमवीसी अनुप्रयोग में सभी नियंत्रकों में स्वचालित रूप से सभी कार्यों पर लागू होगा? मुझे रूबी पर रूबी में एप्लिकेशन कंट्रोलर में परिभाषित "first_filter" जैसा कुछ चाहिए।एएसपी.नेट एमवीसी

आपकी मदद के लिए धन्यवाद।

+0

आप [FluentFilter] (http://fluentfilters.codeplex.com/) लाइब्रेरी का उपयोग करने का प्रयास कर सकते हैं। –

उत्तर

3

यह वास्तव में निर्भर करता है कि आप इसके साथ क्या करना चाहते हैं। कई परिदृश्यों में, वुसेटिका और एडेल द्वारा पिछले उत्तर वही होंगे जो आप वास्तव में करना चाहते हैं। हालांकि, उनमें से कोई भी आपके द्वारा सूचीबद्ध मानदंडों को पूरा नहीं करता है: स्वचालित रूप सेपर सभी क्रियाओं/नियंत्रकों पर लागू होते हैं।

ऐसा कुछ करने के लिए, आपको Global.asax में एप्लिकेशन BeginRequest ईवेंट के लिए एक हैंडलर लागू करना होगा। अधिक जानकारी के लिए MSDN documentation देखें।

अद्यतन - 27 जुलाई, 2010: ScottGu blogged about एमवीसी 3 पूर्वावलोकन 1, जिसमें वैश्विक फ़िल्टर के लिए एक ढांचा शामिल है, जैसे आप बात कर रहे हैं। वे Global.asax के माध्यम से पंजीकृत हैं, और सभी नियंत्रकों या विशिष्ट मानदंडों के आधार पर आवेदन कर सकते हैं।

+0

आपके उत्तर के लिए धन्यवाद। सबसे पहले मैंने सोचा कि यह काम करेगा लेकिन इस दृष्टिकोण को आजमाने के बाद मैंने देखा कि एप्लिकेशन_Bजिन Request को सभी अनुरोध प्राप्त होते हैं, जिसमें पृष्ठ के लिए .js, .css, .jpg और अन्य संसाधनों के अनुरोध शामिल हैं। तो यह एक पृष्ठ के लिए कई बार चलाया जाएगा और एक गंभीर अधिभार हो सकता है। क्या पृष्ठ सामग्री के लिए केवल अनुरोध को फ़िल्टर करने का कोई आसान तरीका है और अनुरोध किए गए यूआरएल को पार्स किए बिना सभी .js, .css, .jpg अनुरोधों को छोड़ दें? – Evgenii

+0

आप यह निर्धारित करने के लिए कि क्या आप नियंत्रक/क्रिया से निपट रहे हैं, आप रूटिंग इंजन से बाहर आने वाली जानकारी को देख सकते हैं। ईमानदारी से, एडेल का जवाब ऐसा कुछ करने का * सही * तरीका है, मैं बस यह इंगित कर रहा था कि यदि आप एक स्वचालित, वैश्विक हैंडलर चाहते हैं तो यह विकल्प है। – GalacticCowboy

+1

यदि आप एमवीसी 3 के लिए इंतजार नहीं करना चाहते हैं, तो मेरे सहकर्मी ने कुछ लिखा है जिसे हम स्वचालित रूप से कार्यों के साथ फ़िल्टर से मेल खाते हैं (या तो हमेशा, या किसी शर्त के आधार पर)। यह आईओसी के लिए विंडसर पर निर्भर है लेकिन आप हमेशा उस हिस्से को संशोधित कर सकते हैं। http://geekswithblogs.net/wesm/archive/2009/12/11/ijoined-filter.aspx – Ryan

3

अपना खुद का बेस नियंत्रक बनाएं और इससे प्राप्त करें।

+0

धन्यवाद, यह काम करना चाहिए, लेकिन मैं वास्तव में एक सरल दृष्टिकोण की तलाश में हूं जिसके लिए बहुत कोडिंग की आवश्यकता नहीं होगी। – Evgenii

+2

@ vucetice आपको विरासत पर रचना का पक्ष लेना चाहिए –

संबंधित मुद्दे