2009-06-02 13 views
8

आप एएसपी.नेट एमवीसी में मास्टर पेज में दृढ़ता से टाइप की गई वस्तु कैसे डालते हैं?मैं मास्टरपेज में डेटा कैसे डालूं?

क्या आपके पास ViewModelBase कक्षा है जिसमें मास्टर पेज जानकारी है और प्रत्येक दृश्य मॉडल के लिए इसका उत्तराधिकारी है, या क्या कोई बेहतर दृष्टिकोण है?

+0

क्या ऐसा करने के लिए कोई वैध परिदृश्य है? सामान्य रूप से विशिष्ट सामग्री को दृश्यों में प्रस्तुत किया जाना चाहिए, मास्टर पेज केवल सामान्य तत्व प्रदान करना चाहिए जो दृश्य के निर्माण के आसपास फिट हो। –

+0

हो सकता है कि मैं यहां पूरी तरह से बंद हूं, लेकिन मैंने सोचा कि अगर मैं वर्तमान में उपयोगकर्ता नाम में लॉग इन की तरह चीजें जोड़ने की ज़रूरत है तो मुझे दृढ़ता से टाइप किए गए दृश्य का उपयोग करना होगा। पृष्ठ पर दिए गए व्यूमोडेल के माध्यम से नहीं तो मैं और कैसे करूँगा? – Alex

+0

मान लीजिए कि आप मानक प्रमाणीकरण विधि का उपयोग कर रहे हैं, उदा। प्रपत्र प्रमाणीकरण, फिर <% = HttpContext.Current.User.Identity.Name%> –

उत्तर

10

एलेक्स,

मुझे लगता है कि तुम क्या कह रहे हैं है, "मेरे मास्टर पृष्ठ नियंत्रक है?"

निम्न लिंक पर एक नज़र डालें। यह बताता है कि "एप्लिकेशन कंट्रोलर" कैसे बनाएं, एक अमूर्त वर्ग जिसे आपके अन्य नियंत्रकों द्वारा विरासत में प्राप्त किया जा सकता है, ताकि आपको केवल उस कोड को लिखना पड़े जो आपके आवश्यक मास्टर पेज डेटा को दृश्य में धक्का दे।

डाटा पासिंग मास्टर पेज देखने के लिए:

में आंशिक अनुरोध:
http://www.asp.net/learn/MVC/tutorial-13-cs.aspx

इसके अलावा, नीचे दिए गए लिंक पर एक नज़र है, जो कैसे आंशिक दृश्य और ASP.NET MVC में Subcontrollers लागू करने के लिए बताते है एएसपी.नेट एमवीसी
http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

+0

पहला लिंक अब और काम नहीं कर रहा है। नया होना चाहिए [http://www.asp.net/mvc/tutorials/passing-data-to-view-master-pages-cs](http://www.asp।नेट/एमवीसी/ट्यूटोरियल/पासिंग-डेटा-टू-व्यू-मास्टर-पेज-सीएस) –

3

यह वही दृष्टिकोण है जिसका मैं उपयोग करता हूं। एक मास्टर व्यूडेटा बेस क्लास जिसमें जानकारी है जो सभी पृष्ठों के लिए आम हो सकती है और मास्टर पेज को प्रस्तुत करने के लिए उपयोग की जाती है (अंतर्निहित ऑथ, पेज-स्तरीय संदेशों का उपयोग न करने पर उपयोगकर्ता में लॉग इन)। मेरे सभी अन्य दृश्य डेटा वर्ग इससे प्राप्त होते हैं।

मैं रॉबर्ट का उल्लेख करता हूं जो भी करता है: मेरे पास बेस कंट्रोलर क्लास है जो व्यू विधि को ओवरराइड करता है, जो वास्तव में कुछ मास्टर पेज की जानकारी को व्यूडाटा कक्षाओं में रखता है।

यदि अन्य विकल्प हैं तो मैं उत्सुक हूं, लेकिन इस दृष्टिकोण ने निश्चित रूप से मेरे लिए अच्छा काम किया है।

0

हम एक समान बेस व्यूडाटा का उपयोग करते हैं, खासकर बड़ी सामग्री-उन्मुख सार्वजनिक साइटों के लिए जहां आपको सामान्य यूआई सामान मिल रहा है।

सामान्य बिट इंजेक्ट करने के लिए हम जिस चाल का उपयोग करते हैं, वह हमारे नियंत्रकों की वापसी के आसपास MasterPageViewModel इंजेक्ट करने के लिए एक एक्शनफ़िल्टर का उपयोग करना है। एक ओवरराइड व्यू विधि के साथ एक विशेष नियंत्रक वर्ग होने की तुलना में यह काफी साफ है क्योंकि निश्चित रूप से ऐसे स्थान हैं जहां आप नहीं चाहते हैं/इसकी आवश्यकता है। और विरासत की चीज़ पर पूरी संरचना।

+0

क्या आपके पास कोई कोड उदाहरण है व्याट? मुझे यह अच्छा लगेगा कि आपने इसे कैसे प्रबंधित किया। – lloydphillips

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