net mvc asp asp.net-mvc partial-views renderpartial

asp.net-mvc - mvc - render partial asp net core



Usando Html.RenderPartial() en archivos ascx (3)

Estoy tratando de usar Html.RenderPartial en el archivo acsx y recibo un error:

Mensaje de error del compilador: CS1973: ''System.Web.Mvc.HtmlHelper'' no tiene un método aplicable llamado ''RenderPartial'' pero parece tener un método de extensión con ese nombre. Los métodos de extensión no pueden ser enviados dinámicamente. Considere convertir los argumentos dinámicos o llamar al método de extensión sin la sintaxis del método de extensión

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

Sin embargo, he importado espacios de nombres necesarios, por lo que no será error en

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

¿Hay algún método para usar Html.RenderPartial en el archivo ascx?


El compilador no puede elegir el método correcto porque su modelo es dynamic . Cambia la llamada a:

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

O cualquier otra identificación del tipo de datos es.


En caso de que alguien más haya cometido el mismo error que yo:

@Model MyViewModel

Esto tratará tu modelo como dinámico.

@model MyViewModel

Esta es una vista correctamente tipada. Tenga en cuenta la falta de capitalización!

Tenga en cuenta que esto es Razor, a diferencia de la pregunta original.


La única manera que encontré para pasar por ejemplo. un IEnumerable era crear una variable local y pasarla en esta. Por ejemplo, @{ IEnumerable<Demo.Models.Friend> friends = Model.Friends; Html.RenderPartial("_FriendsList", friends); } @{ IEnumerable<Demo.Models.Friend> friends = Model.Friends; Html.RenderPartial("_FriendsList", friends); }

Html.RenderPartial("_FriendsList", (IEnumerable<Demo.Models.Friends>)(Model.Friends)); ¡no funcionó!