asp.net mvc - Trouble passing ViewModel to Partial View -


मेरा दृश्य मॉडेल वर्ग (आइटमव्यूमोडेल सी) इस तरह दिखता है:

सार्वजनिक वर्ग मदविविमॉडल {

<पूर्व> सार्वजनिक आइटम दृश्य मॉडेल (xxx.Product उत्पाद) {this.product = उत्पाद; } निजी रीडोनली xxx.xxx.Product उत्पाद; निजी रीडोनली Pers Pers; निजी रीडोनली आइटम आइटम; सार्वजनिक xxx.xxx.Product उत्पाद {{वापसी उत्पाद;}} सार्वजनिक आइटम आइटम {प्राप्त करें {वापसी आइटम प्राप्त करें; }} सार्वजनिक आइटम सूची आइटम {प्राप्त {return product.Items; }} सार्वजनिक रूप से Pers {प्राप्त {वापसी pers; } सेट {value = pers; }} पब्लिक पर्सलिस्ट पर्सलिस्ट {रिटर्न उत्पाद प्राप्त करें। पर्सलिस्ट; }}

}

दृश्य में इस कोड को परिभाषित किया गया है (मैंने कुछ अन्य केस लाइनें लीं, सिर्फ एक को दिखाने के लिए उन्हें एक उदाहरण के रूप में):

  & lt;% @ पेज भाषा = "सी #" मास्टरपेजफ़ाइल = "~ / दृश्य / साझा / मास्टरपेज / आइटम। मास्टेरर" इनहेरिट्स = "सिस्टम.Web.Mvc ViewPage & LT; xxx.ViewModels.ItemViewModel & gt; " & Gt%; & Lt;% foreach (Model.Perslist में Pers पी) {स्विच (पी। DispType) {केस DisType.Dropdown: Model.Pers = p; Html.RenderPartial ( "~ / दृश्य / साझा / नियंत्रण / कस्टम / PForm / DropDown.ascx", * मॉडल); टूटना; }}% ​​& Gt;  

और रेंडरपारटियल इस तरह दिखता है:

  & lt; fieldet & gt; & Lt; div वर्ग = "xxx" & gt; & Lt; span class = "xxx" & gt; * & lt; / span & gt; & lt; लेबल & gt; & lt;% = मॉडल.परियों। नाम% & gt; & lt; / लेबल & gt; & Lt; p वर्ग = "xxx" & gt; & lt;% = मॉडल.परर्स.इन्फो% & gt; & lt; / p & gt; & Lt; / div & gt; & Lt; div class = "formField" & gt; & lt;% HTML.DropDownList (Model.Pers.Name, नई SelectList (Model.Items [0]। ड्रॉपडाउन आइटम));% & gt; & lt; / div & gt; & Lt; / fieldset & gt;  

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

इसलिए जब पृष्ठ मुझे मिलता है:

System.NullReferenceException: ऑब्जेक्ट संदर्भ किसी ऑब्जेक्ट के एक उदाहरण के लिए सेट नहीं है। इस रेखा के लिए:

  & lt; span class = "xxx" & gt; * & lt; / span & gt; & lt; लेबल & gt; & lt;% = मॉडल.परियों। नाम% & gt; & lt; / लेबल & gt ;  

अब तक मैं अनभिज्ञ हूं क्योंकि मुझे अभी भी संपत्ति पर एक नल संदर्भ त्रुटि मिलती है जब मैं अपने आंशिक दृश्य में ITemViewModel का उपयोग करने का प्रयास करता हूं।

< P>

ऐसा इसलिए हो सकता है क्योंकि आपकी आंशिक दृश्य फ़ाइल को आपके HTML से ऊपर की जरूरत है:

  & lt;% @ पृष्ठ भाषा = "सी #" इनहेरिट्स = "सिस्टम। वेब। एमवीसी वीवेज & लेफ्टिनेंट; xxx.व्यूमॉडल्स। ** आइटमव्यू मॉडल ** & gt;" & Gt%;  

तो ऐसा है कि आपका आंशिक दृष्टिकोण क्या दिखता है:

  & lt;% @ पृष्ठ भाषा = "सी #" इनहेरिट = "सिस्टम। वेब। एमवीसी ViewPage & LT; xxx.ViewModels ** ItemViewModel ** & gt;। " & Gt%; & LT; fieldset & gt; & Lt; div वर्ग = "xxx" & gt; & Lt; span class = "xxx" & gt; * & lt; / span & gt; & lt; लेबल & gt; & lt;% = मॉडल.परियों। नाम% & gt; & lt; / लेबल & gt; & Lt; p वर्ग = "xxx" & gt; & lt;% = मॉडल.परर्स.इन्फो% & gt; & lt; / p & gt; & Lt; / div & gt; & Lt; div class = "formField" & gt; & lt;% HTML.DropDownList (Model.Pers.Name, नई SelectList (Model.Items [0]। ड्रॉपडाउन आइटम));% & gt; & lt; / div & gt; & Lt; / fieldset & gt;  

Comments

Popular posts from this blog

c++ - Linux and clipboard -

What is expire header and how to achive them in ASP.NET and PHP? -

sql server - How can I determine which of my SQL 2005 statistics are unused? -