null - ASP.NET MVC, strongly typed views, partial view parameters glitch -


अगर मुझे लगता है कि जो से प्राप्त होता है:

  System.Web.Mvc.ViewPage & lt; फू & gt;  

जहां फ़ू के पास एक टाइप स्ट्रिंग के साथ एक संपत्ति बार होता है
और दृश्य दृढ़ता से टाइप किए गए आंशिक दृश्य को प्रस्तुत करना चाहता है जो कि: से प्राप्त होता है:

  System.Web .Mvc.ViewUserControl & LT; स्ट्रिंग & gt;  

इसे पसंद करें:

  एचटीएमएल.रेंडरपार्टीअल ("_ बार", मॉडल। बार);% & gt;  

तो इसे क्यों फेंक दिया जाएगा:

शब्दकोश में दिया गया मॉडल आइटम 'फू'
प्रकार है, लेकिन इस शब्दकोश में एक मॉडल की आवश्यकता है प्रकार 'system.String' का आइटम।

जब बार प्रारंभ नहीं होता है?

और अधिक विशिष्ट: क्यों यह फू पास करता है, जहां यह शून्य से गुजरना चाहिए?

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

यह आपकी समस्या को ठीक करना चाहिए:

  & lt;% HTML.RenderPartial ("_Bar", Model.Bar? String.Empty)% & gt;  

Comments

Popular posts from this blog

c# - PInvoke of NetUserAdd returns 24 -

c# - XMLDocument.Validate Error: System.InvalidOperationException : The XmlSchemaSet on the document is either null or has no schemas in it -