2012-02-10 18 views
5

में डायनामिक पेज रेंडरिंग मैं सी # और .NET के लिए बहुत नया हूं और मुझे खुद को किसी समस्या का सामना करना पड़ रहा है और मुझे यकीन नहीं है कि मुझे किस दिशा में सिर की आवश्यकता है।एएसपीएक्स

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

जब कोई सदस्यता इस श्रृंखला के एक निश्चित प्रयास के लिए अर्हता प्राप्त करती है, तो हमारे पास एक ईवेंट उत्पन्न हो सकता है जिससे सिस्टम किसी दिए गए यूआरआई को एक XML पेलोड के साथ HTTP POST अनुरोध भेज देगा। एंडपॉइंट (एक .aspx पृष्ठ) अनुरोध प्राप्त करता है, इसे संसाधित करता है, और इस मामले में, एचटीएमएल कोड के साथ प्रतिक्रिया देता है। उस HTML को फिर पूर्णता प्रणाली द्वारा ईमेल किया जाता है।

मेरे पास इनमें से कुछ के साथ बनाया गया मूल वेब एप्लिकेशन है .aspx पेज ऊपर और चल रहे हैं। प्रत्येक पृष्ठ में फ़ाइल के पीछे एक संबंधित .cs कोड है।

यहां मेरा प्रश्न वास्तव में शुरू होता है। हमारी पूर्ति प्रणाली में, हम केवल घटना और उत्पाद के संयोजन के एक अंतराल को परिभाषित कर सकते हैं। इसलिए, कोई फर्क नहीं पड़ता कि उस समय के लिए सदस्यता किस योग्यता के लिए योग्य है, घटना स्वयं ही वही है। हालांकि, अलग-अलग POST अनुरोध का एक्सएमएल अलग है। यह उस एक्सएमएल में है जिसे मैं बता सकता हूं कि अनुरोध किस प्रयास के लिए तैयार किया गया है। कारण महत्वपूर्ण है क्योंकि संबंधित ईमेल का HTML प्रत्येक प्रयास के लिए अलग है। वाक्यांश को थोड़ा अलग तरीके से करने के लिए, एचटीएमएल जो प्रस्तुत किया जाना चाहिए, प्रयास से 1 प्रयास के लिए अलग-अलग, ऊपर से नीचे है। प्रयास 2 प्रयास 3 से अलग है, और इसी तरह।

तो, मैं यह समझने की कोशिश कर रहा हूं कि "यातायात को निर्देशित करें"। चूंकि ये सभी अनुरोध एक ही अंतराल पर आ जाएंगे, इसलिए मुझे इसी प्रयास के लिए सही HTML को गतिशील रूप से वापस करने की आवश्यकता है।

इसी ऐप में एक अलग .aspx पृष्ठ में, कुछ सामग्री है जो अनुरोध की सामग्री के आधार पर गतिशील रूप से उत्पन्न होने की आवश्यकता है। उस स्थिति में, मैंने दो PlaceHolder नियंत्रणों का उपयोग किया, प्रत्येक पाठ के प्रत्येक संभावित सेट के लिए। फिर, कोड के पीछे, अपनी Visible संपत्ति को यथासंभव सही या गलत पर सेट करें।

मैंने इस मामले में ऐसा करने के विचार को खारिज कर दिया क्योंकि शुरुआती पांच या छह HTML टेम्पलेट्स हैं और उनमें से सभी को एक पृष्ठ में भरना गन्दा और बनाए रखना कठिन होगा।

यह वह जगह है जहां मैं इस बिंदु पर हूं कि मुझे नहीं पता कि आगे क्या करना है। मुझे एहसास है कि उपयोगकर्ता नियंत्रण या कस्टम नियंत्रण जाने का रास्ता होगा? लेकिन, सादा पुराना पुनर्निर्देशन एक बेहतर विकल्प है? या उपर्युक्त में से कोई नहीं?

उत्तर

4

आपके द्वारा खारिज किए गए समाधान सही के बहुत करीब हैं। हालांकि, ऐसा कुछ है जो आप इसे सरल बनाने और रखरखाव को आसान बनाने के लिए कर सकते हैं।

हम यहां क्या करना चाहते हैं एक कस्टम नियंत्रण या प्रत्येक प्रयास के लिए उपयोगकर्ता नियंत्रण का निर्माण करना है। यह आपको एक ही स्थान पर सबकुछ मिलाकर, अलग-अलग प्रयासों के लिए कोड को बनाए रखने देगा। फिर आपका पूरा एंडपॉइंट * .aspx पृष्ठ में एक प्लेसहोल्डर नियंत्रण होता है। अनुरोध को संसाधित करते समय, आपकी पेज_लोड विधि आपके एक्सएमएल को पार्स करेगी और यह पता लगाएगी कि आपको किस तरह के प्रयास की आवश्यकता है। इसके बाद यह उचित नियंत्रण का एक नया उदाहरण बनाएगा, इसे प्लेसहोल्डर में जोड़ें, और शेष डेटा को प्रोसेसिंग को समाप्त करने के लिए नियंत्रण में पास कर देगा।

क्योंकि यहां सभी नियंत्रणों (एक्सएमएल संदेश प्राप्त करने की क्षमता) के बीच कुछ समानता है, तो आप पहले व्यक्तिगत प्रयास नियंत्रण के लिए एक आधार नियंत्रण भी बनाना चाहते हैं।

+0

ठीक है ... मैं आपके साथ हूं। इस पर पेड़ों के लिए जंगल नहीं दिख रहा है! जब मैं उस दूसरे पृष्ठ में जो किया था उसके बीच कनेक्शन बनाने की कोशिश कर रहा था और यह एक, मैं प्लेसहोल्डर नियंत्रण के लिए अपने केवल विकल्पों पर फंस गया था, जो दिख रहा था, या दिखाई नहीं दे रहा था। धन्यवाद! –

3

जो मैं समझता हूं उससे, आप एक अंतराल बिंदु चाहते हैं लेकिन फिर भी आंतरिक रूप से अनुरोधों को "रूट" करने में सक्षम होंगे। यह आसानी से संभव है।

उदाहरण के लिए आप Server.Transfer का उपयोग कर आंतरिक रूप से स्थानांतरण अनुरोध कर सकते हैं। इस तरह आप अपने 5 या 6 अलग-अलग HTML टेम्पलेट्स प्राप्त कर सकते हैं और फिर अनुरोध की सामग्री के आधार पर आने वाले अनुरोधों को सही टेम्पलेट पर रूट कर सकते हैं।

+0

ओह, ठीक है। यह भी समझ में आता है। धन्यवाद! –

0

enter link description here

यहाँ हम रन टाइम पर एक नया .aspx पृष्ठ बनाने के लिए यहां एक उदाहरण देता हूँ। हम पृष्ठ का नाम देने का विकल्प भी देते हैं। उपयोगकर्ता उसे पसंद कर सकता है। Google ब्लॉगिंग की तरह हम रनटाइम पर नया पेज बनाते हैं। नया पृष्ठ वेबसाइट पर नहीं है, इस पृष्ठ को रनटाइम पर बनाए जाने की आवश्यकता है और गतिशील होने की आवश्यकता है।

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