हाल ही में question एमवीसी विशेषताओं के बारे में, किसी ने पूछा कि क्या एक एक्शन विधि पर एचटीपीपोस्ट और एचटीपीडीलेट गुणों का उपयोग करना होगा या तो अनुरोध प्रकार की अनुमति दी जा रही है या कोई अनुरोध नहीं किया जा रहा है (क्योंकि यह दोनों पोस्ट और डिलीट नहीं हो सकता है उसी समय)। मैंने देखा है कि ActionMethodSelectorAttribute, जो HttpPostAttribute और HttpDeleteAttribute से दोनों निकाले जाते हैं साथएक अमूर्त विशेषता वर्ग पर AllowMultiple = false को इंगित करने का क्या मतलब है?
[AttributeUsage(AttributeTargets.Method,
AllowMultiple = false,
Inherited = true)]
मैं उम्मीद थी यह इस वजह से एक ही विधि पर अनुमति नहीं करने के लिए दोनों HttpPost और HttpDelete सजाया है, लेकिन संकलक शिकायत नहीं है। मेरा सीमित परीक्षण मुझे बताता है कि बेस क्लास पर विशेषता उपयोग को अनदेखा किया जाता है। अनुमति दें कई अलग-अलग में से केवल किसी विधि/वर्ग पर लागू होने से विशेषता को अस्वीकार करते हैं और ऐसा नहीं लगता है कि वे गुण उसी वर्ग से प्राप्त होते हैं जो गुणकों को अनुमति देने के लिए कॉन्फ़िगर नहीं किया गया है। इसके अलावा, बेस क्लास पर विशेषता उपयोग आपको व्युत्पन्न वर्ग पर विशेषता उपयोग को बदलने से भी रोकता नहीं है। यह मामला है, आधार विशेषता वर्ग पर मूल्यों को भी सेट करने का क्या मतलब है? क्या यह सिर्फ सलाहकार है या क्या मैं कुछ काम करता हूं कि वे कैसे काम करते हैं?
एफवाईआई - यह पता चला है कि दोनों का उपयोग मूल रूप से उस विधि को कभी भी माना जा रहा है। विशेषताओं का मूल्यांकन स्वतंत्र रूप से किया जाता है और उनमें से एक हमेशा यह संकेत देगा कि विधि अनुरोध के लिए मान्य नहीं है क्योंकि यह एक साथ पोस्ट और डिलीट दोनों नहीं हो सकती है।
उनका मुद्दा यह है कि एक से अधिक की अनुमति AllowAultiple = झूठी जब MyAttributeBase की अनुमति है। तो आपको केवल एक ही [फू] या [बार] की अनुमति होगी। – Rangoric
.NET में ऐसा करने का कोई तरीका नहीं है, क्योंकि प्रश्नकर्ता ने प्रश्न में खोज की और स्पष्ट किया। मैं इस सवाल को संबोधित कर रहा था कि "हम कभी भी एट्रिब्यूट यूज को बेस एट्रिब्यूट में क्यों लागू करेंगे?" –