मैं इस परिदृश्य के लिए अपनी राय और शायद बेहतर सुझाव सुनने के लिए करना चाहते हैं:ASP.NET MVC, ActionFilters, स्थिर वर्गों और आसपास गुजर डेटा
मुझे लगता है कि कुछ काम करता है और बाहर आता है एक कस्टम ActionFilter परिभाषित है कुछ मूल्य के साथ। मैं उस मान को नियंत्रक कार्यों और मॉडल में उपयोग करना चाहता हूं।
अब, मैं TempData का उपयोग किसी भी नियंत्रक कार्रवाई विधि के लिए ActionFilter से इस मूल्य पारित करने के लिए कर सकता है, तो सभी मॉडलों कि लौट आए विचारों के लिए पारित करने के लिए पर इस मूल्य वितरित करते हैं।
मुझे यकीन है कि यह काम करेगा हूँ लेकिन इस TempData सत्र कब और कहाँ कोई भी वास्तव में इसे अब और जरूरत में नहीं होगा। मूल्य को एक ही अनुरोध के समय कोड में विशेष रूप से उपयोग किया जाना चाहिए जिसके बाद यह प्रभावी रूप से अमान्य हो जाता है।)
ActionFilter में, मैं यह मान TempData में OnActioExecuting() में स्थापित है और मैं OnActionExecuted में इसे हटाने (:
मैं दो विकल्पों के साथ आए हैं। क्या मैं इसे सही ढंग से समझता हूं कि जब तक ऑनएक्शन एक्स्क्लेटेड कहा जाता है, नियंत्रक कार्रवाई समाप्त हो जाती है, प्रतिक्रिया पहले से ही उत्पन्न हो चुकी है और यह टेम्पपडेटा सामग्री ने सत्र सत्र में अपना रास्ता नहीं बनाया है?
अपने कस्टम स्थिर कक्षाओं (तर्क) के किसी भी में मैं सिर्फ इस मूल्य के लिए एक सार्वजनिक संपत्ति को परिभाषित करने और जब भी जरूरत मैं इसे का उपयोग करें। क्या यह स्थिर फ़ील्ड OnActionExecuting() और वास्तव में नियंत्रक विधि को निष्पादित करने के बीच खो नहीं जाएगा? क्या सर्वर पर अनुरोध प्रसंस्करण के दौरान इस मूल्य को खोने के साथ कोई अन्य समस्याएं हैं?
क्या कोई अन्य/बेहतर विकल्प मैंने अभी तक नहीं माना है?
वास्तव में काफी दिलचस्प है। क्या ऐसा है कि एक्शन कन्स्ट्रक्टर पैरामीटर स्वचालित रूप से एक्शन पैरामीटर संग्रह कुंजी पर मैप किए जाएंगे? – User
हाँ कार्रवाई पैरामीटर नियंत्रक में मान पास करने के लिए पसंदीदा तरीका होना चाहिए। – kazimanzurrashid
आखिरकार मुझे यह दृष्टिकोण पसंद आया, हालांकि यह निश्चित रूप से डीआरवाई सिद्धांत से इनकार करता है। पारितोषिक के लिए धन्यवाद। – User