मैं अब भी नियंत्रण में उलझन से अपरिचित हूं (हालांकि मैं अब इसके बारे में सीख रहा हूं) इसलिए यदि यह मेरे प्रश्न का समाधान है, तो बस मुझे बताएं और मुझे मिल जाएगा इसके बारे में सीखने के लिए वापस।एएसपी.नेट एमवीसी - कंट्रोलर के बीच सत्र राज्य साझा करना
मेरे पास नियंत्रक की एक जोड़ी है जो सत्र परिवर्तनीय की आवश्यकता है, स्वाभाविक रूप से ऐसा कुछ भी नहीं होता है क्योंकि सत्र पहली जगह कैसे काम करता है, लेकिन इससे मुझे आश्चर्य हुआ कि संबंधित वस्तुओं को दो अलग-अलग नियंत्रकों के बीच साझा करने का सबसे साफ तरीका क्या है है। मेरे विशिष्ट परिदृश्य में मेरे पास एक अपलोड कंट्रोलर और एक उत्पाद नियंत्रक है जो छवि फ़ाइलों को अपलोड करने के लिए एक-दूसरे के साथ मिलकर काम करता है। चूंकि अपलोडकंट्रोलर द्वारा फ़ाइलों को अपलोड किया जाता है, अपलोड के बारे में डेटा सत्र में संग्रहीत किया जाता है। ऐसा होने के बाद मुझे ProductController में उस सत्र डेटा तक पहुंचने की आवश्यकता है। यदि मैं सत्र परिवर्तक के लिए एक प्राप्त/सेट संपत्ति बनाता हूं जिसमें दोनों नियंत्रकों में मेरी अपलोड जानकारी है, तो मैं उस डेटा तक पहुंचने में सक्षम हूं, लेकिन साथ ही मैं डीआरवाई के सभी प्रकार का उल्लंघन कर रहा हूं, सबसे अच्छा, भ्रमित डिज़ाइन जहां एक वस्तु साझा की जाती है और दो पूरी तरह से डिस्कनेक्ट की गई वस्तुओं द्वारा संशोधित की जाती है।
आप क्या सुझाव देते हैं?
सटीक प्रसंग:
एक फाइल अपलोड पोस्ट देखें UploadController.ImageWithpreview() है, जो तब तैनात फ़ाइल और यह प्रतियां एक अस्थायी निर्देशिका में पढ़ता है के लिए एक फ़ाइल। फ़ाइल को सहेजने के बाद, एक और क्लास अपलोड की गई छवि का थंबनेल बनाता है। मूल फ़ाइल और जेनरेट किए गए थंबनेल दोनों के लिए पथ एक JsonResult के साथ एक जावास्क्रिप्ट कॉलबैक में लौटा दिया जाता है जो पृष्ठ पर किसी रूप में कुछ गतिशील सामग्री को अपडेट करता है जिसे "सहेजा" या "रद्द" किया जा सकता है। चाहे अपलोड की गई छवि सहेजी गई हो या इसे छोड़ दिया गया हो, मुझे अस्थायी निर्देशिका से या दोनों उत्पन्न और थंबनेल को हटाने या हटाने की आवश्यकता है। इसे सुविधाजनक बनाने के लिए, अपलोडकंट्रोलर सत्र-रखरखाव कतार ऑब्जेक्ट में सभी अपलोड फ़ाइलों और उनके थंबनेल का ट्रैक रखता है।
दृश्य में वापस: फ़ॉर्म अपलोड किए गए छवि के जेनरेट किए गए थंबनेल के साथ आबादी के बाद, फॉर्म वापस उत्पाद नियंत्रक को पोस्ट करता है जहां चयनित फ़ाइल की पहचान की जाती है (वर्तमान में मैं एक छिपे हुए क्षेत्र में फ़ाइल नाम संग्रहीत करता हूं, मुझे एहसास है कि एक भयानक भेद्यता है), और फिर अस्थायी स्थान पर अस्थायी निर्देशिका से कॉपी की गई। आदर्श रूप से, मैं बस सत्र में संग्रहीत कतार का उपयोग करना चाहता हूं ताकि फ़ॉर्म में छवि स्थान को शामिल करने की आवश्यकता न हो। इस तरह मैंने अपने समाधान की कल्पना की है, लेकिन मैं उत्सुकता से किसी भी टिप्पणी या आलोचनाओं को सुनूंगा।
इस इनपुट को धन्यवाद। मैंने अपने मूल प्रश्न में कुछ और जानकारी जोड़ दी है यदि यह किसी और उपयोग का है। –
छवि प्रसंस्करण वास्तविक समय है, लेकिन वेबसाइट के लिए एक व्यवस्थापक क्षेत्र के अंदर मौजूद है, इसलिए इसका समग्र उपयोग बहुत कम है। अधिकतर, पूरे एप्लिकेशन में प्रति घंटे केवल कुछ छवियों को संसाधित होने की संभावना है। एक और दृष्टिकोण जिसे मैंने भी माना था, केवल वर्तमान सत्र के लिए एप्लिकेशन की सत्र_एंड घटना पूरी अस्थायी निर्देशिका को हटा रहा था, लेकिन मुझे यकीन नहीं है कि यह कितना आदर्श है। –
यदि आपके उपयोगकर्ता ने बहुत सी छवियां अपलोड की हैं जो प्रसंस्करण कर रही हैं, तो मुझे नहीं लगता कि आप गारंटी दे सकते हैं कि यह तब होगा जब उनका सत्र समाप्त हो जाएगा। एक बार "प्रसंस्करण" पूरा हो जाने पर मैं इसे हटा दूंगा। जब तक कतार में प्रक्रिया करने की प्रक्रिया होती है तब तक कार्यकर्ता थ्रेड जीवित रहना चाहिए ताकि इसे मानना सुरक्षित हो। जब तक आपका ऐप पूल "सोया नहीं जाता", तब तक आपके सिस्टम को ठीक प्रक्रिया करना जारी रखना चाहिए। बहुत यकीन है कि यह मेरे द्वारा जुड़े आलेख में शामिल है। वास्तव में – andymeadows