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ó!