2010-03-18 10 views
12

की निरंतरता रोकें मेरे पास एक क्रिया पर दो कस्टम एक्शन फ़िल्टर हैं।एएसपी.नेट एमवीसी एक्शनफिल्टर

एक्शनफिल्टर के पहले में, यदि कोई शर्त पूरी नहीं हुई है (क्लासिक प्राधिकरण) मेरे पास रीडायरेक्ट किया गया है। और दूसरी तरफ मेरे पास एक रीडायरेक्ट किया जाता है यदि कोई अन्य शर्त पूरी नहीं होती है (भूमिका जांचना कहें)।

लेकिन मैं दूसरी कार्रवाई जारी नहीं रखना चाहता हूं अगर पहले व्यक्ति को पूरा नहीं किया गया है। यह कैसे करना है?

+0

यह [उत्तर] (https://stackoverflow.com/a/9842910/2460971) एक समान प्रश्न पर अधिक जानकारी में जाता है। – numaroth

उत्तर

21

filterContext.Result संपत्ति को किसी भी गैर-शून्य मान पर सेट करना बाद के फ़िल्टरों को निष्पादित करना बंद कर देगा। तो यदि आपका पहला फ़िल्टर filterContext.Result = new RedirectResult(...) सेट करता है, तो दूसरा फ़िल्टर और एक्शन विधि कभी नहीं चली जाएगी। इस प्रकार निर्मित [Authorization] फ़िल्टर काम करता है।

+7

मुझे बस एक एमवीसी 2 प्रोजेक्ट में वापस जाना पड़ा, इसलिए अगर किसी को अभी भी इसकी आवश्यकता हो तो इसे यहां छोड़ दें: यदि आप अपने एक्शन में 'रिटर्न नल' की सामान्य कार्यक्षमता चाहते हैं, तो आप 'filterContext.Result = new EmptyResult कर सकते हैं(); ' –

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