2010-09-29 10 views
22

मैं acsx फ़ाइल में Html.RenderPartial उपयोग करने के लिए कोशिश कर रहा हूँ और मैं एक त्रुटि हो रही है: हालांकि मैं आयात आवश्यक नामस्थान हैascx फाइलों में Html.RenderPartial() का उपयोग

Compiler Error Message: CS1973: 'System.Web.Mvc.HtmlHelper' has no applicable method named 'RenderPartial' but appears to have an extension method by that name. Extension methods cannot be dynamically dispatched. Consider casting the dynamic arguments or calling the extension method without the extension method syntax

<a href="/projects/<%=project.Id %>"> 
    <% Html.Label("fdf"); %> 
    <% Html.RenderPartial("ProjectName", Model.Id); %></a></li> 
<%} %> 

, तो यह त्रुटि

<% Html.Label("fdf"); %> 

पर नहीं होगा वहाँ रहे हैं किसी भी तरीकों ascx फ़ाइल में Html.RenderPartial उपयोग करने के लिए?

उत्तर

40

कंपाइलर सही विधि का चयन नहीं कर सकता क्योंकि आपका मॉडल dynamic है। कॉल को बदलें:

<% Html.RenderPartial("ProjectName", (int)(Model.Id)); %> 

या कोई अन्य डेटाटाइप आईडी है।

+0

+1 मेरी समस्या भी हल हो गई! धन्यवाद! – Rob

+3

@Rob, यदि आप कभी भी रेजर पर स्विच करते हैं, तो इसका उपयोग करने पर विचार करें: http://stackoverflow.com/questions/4047543/render-partial-view-with-dynamic-model-in-razor-view-engine-and-asp -नेट-एमवीसी -3/5357049 # 5357049 – juan

2

मुझे पास करने के लिए एकमात्र तरीका मिला। एक आईनेमरेबल एक स्थानीय चर बनाने और इस में पास करना था। उदाहरण @{ IEnumerable<Demo.Models.Friend> friends = Model.Friends; Html.RenderPartial("_FriendsList", friends); }

Html.RenderPartial("_FriendsList", (IEnumerable<Demo.Models.Friends>)(Model.Friends)); के लिए काम नहीं किया!

@Model MyViewModel 

यह आपके मॉडल के रूप में गतिशील

@model MyViewModel 

यह एक सही ढंग से दृढ़ता से टाइप किया दृश्य है व्यवहार करेगा:

8

मामले में किसी और वही गलती मैंने किया था बनाया है। पूंजीकरण की कमी पर ध्यान दें!

नोट, यह मूल प्रश्न के विपरीत, रेज़र है।

+0

वास्तव में प्रतिभा का थोड़ा सा। यह वास्तव में मुझे समय बचाने में मदद की। – udog

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