J'essaie d'utiliser Html.RenderPartial dans un fichier acsx et j'obtiens une erreur:
Message d'erreur du compilateur: CS1973: 'System.Web.Mvc.HtmlHelper' n'a pas de méthode applicable nommée 'RenderPartial' mais semble avoir une méthode d'extension de ce nom. Les méthodes d'extension ne peuvent pas être distribuées dynamiquement. Envisagez de transtyper les arguments dynamiques ou d'appeler la méthode d'extension sans la syntaxe de la méthode d'extension
<a href="/projects/<%=project.Id %>">
<% Html.Label("fdf"); %>
<% Html.RenderPartial("ProjectName", Model.Id); %></a></li>
<%} %>
Cependant, j'ai importé des espaces de noms nécessaires, donc ce ne sera pas une erreur à
<% Html.Label("fdf"); %>
Existe-t-il des méthodes pour utiliser Html.RenderPartial dans le fichier ascx?
Le compilateur ne peut pas choisir la bonne méthode car votre modèle est dynamic
. Changez l'appel en:
<% Html.RenderPartial("ProjectName", (int)(Model.Id)); %>
Ou tout autre ID de type de données est.
Au cas où quelqu'un d'autre aurait fait la même erreur que moi:
@Model MyViewModel
Cela traitera votre modèle comme dynamique
@model MyViewModel
Il s'agit d'une vue correctement fortement typée. Notez le manque de capitalisation!
Notez que c'est Razor, contrairement à la question d'origine.
Le seul moyen que j'ai trouvé pour passer par exemple. un IEnumerable devait créer une variable locale et passer celle-ci. Par exemple @{ IEnumerable<Demo.Models.Friend> friends = Model.Friends; Html.RenderPartial("_FriendsList", friends); }
Html.RenderPartial("_FriendsList", (IEnumerable<Demo.Models.Friends>)(Model.Friends));
n'a pas fonctionné!