Html.RenderPartial मुझे अजीब अधिभार त्रुटि दे रही है?


103

मैंने _Test.cshtml नाम से एक परीक्षण आंशिक पृष्ठ बनाया और इसे उसी निर्देशिका में रखा, जो मेरे विचार से इसे कॉल कर रहा है, यहाँ है:

<div>hi</div>

और कॉलिंग cshtml दृश्य में, मैंने सीधे शब्दों में कहा:

@Html.RenderPartial("_Test")

जो मुझे त्रुटि देता है:

CS1502: 'System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)' के लिए सबसे अच्छा अतिभारित विधि मिलान में कुछ अमान्य तर्क हैं

मैंने भी उसी परिणाम के साथ पूरा रास्ता आज़माया है।

मैं बहुत उलझन में हूं कि यह इस तरह क्यों काम कर रहा है, मुझे लगता है कि मैं कुछ सरल याद कर रहा हूं?

जवाबों:


190

आपको यह त्रुटि इसलिए मिल रही है क्योंकि Html.RenderXXXमददगार शून्य हो गए हैं - उनके पास लौटने के लिए कुछ भी नहीं है क्योंकि वे प्रतिक्रिया के लिए सीधे सामान * लिख रहे हैं। आपको उनका उपयोग इस तरह करना चाहिए:

@{ Html.RenderPartial("_Test"); }

Html.Partial हेल्पर भी है, जो आपके सिंटैक्स के साथ काम करेगा, लेकिन मैं इसे तब तक उपयोग करने की सलाह नहीं दूंगा जब तक आपको नहीं करना है, प्रदर्शन के कारण (यह पहले स्ट्रिंग में आंशिक दृश्य देता है, और फिर अभिभावक दृश्य प्रतिक्रिया में डाल देता है * )।

* यह पूरी तरह से सच नहीं है, वे वास्तव में ViewContext.Writer में प्रस्तुत किए जा रहे हैं और एक बार पूरे पेज को रेंडर और रचित करने के बाद, पूरी बात प्रतिक्रिया के लिए जाती है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.