2010-09-29 12 views
22

Sto cercando di utilizzare Html.RenderPartial in acsx lima e sto ottenendo un errore:Utilizzando Html.RenderPartial() nel file ascx

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> 
<%} %> 

Tuttavia ho importazione namespace neccessary , quindi non sarà errore in

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

ci sono metodi da utilizzare nel file di Html.RenderPartial ascx?

risposta

40

Il compilatore non può scegliere il metodo corretto perché il modello è dynamic. Cambia la chiamata a:

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

O qualsiasi altro tipo di dati è.

+0

+1 Risolto il problema anche io! Grazie! – Rob

+3

@Rob, se mai si passa a Razor, prendere in considerazione l'uso di questo: http://stackoverflow.com/questions/4047543/render-partial-view-with-dynamic-model-in-razor-view-engine-and-asp -net-mvc-3/5357049 # 5357049 – juan

2

L'unico modo in cui ho trovato di passare ad es. un oggetto IEnumerable doveva creare una variabile locale e passare in questo. Per esempio @{ IEnumerable<Demo.Models.Friend> friends = Model.Friends; Html.RenderPartial("_FriendsList", friends); }

Html.RenderPartial("_FriendsList", (IEnumerable<Demo.Models.Friends>)(Model.Friends)); non ha funzionato!

8

Nel caso in cui nessun altro ha fatto lo stesso errore che ho fatto:

@Model MyViewModel 

Questa considererà il suo modello come dinamica

@model MyViewModel 

Questa è una visione corretta fortemente tipizzato. Nota la mancanza di maiuscole!

Nota che questo è il Rasoio, a differenza della domanda originale.

+0

Davvero un po 'geniale. Mi ha davvero aiutato a farmi risparmiare tempo. – udog

Problemi correlati