11
votes

RenderPartial de différents dossiers dans Razor

J'essaie de convertir mes pages ASPX en CSHTML et d'avoir un problème avec des pages partielles de rendu d'un autre dossier.

Ce que je faisais: P>

@Html.RenderPartial("~/Views/Inquiry/_InquiryList.cshtml", Model.InquiryList.OrderBy("InquiryId", MvcContrib.Sorting.SortDirection.Descending))


0 commentaires

3 Réponses :


7
votes

Le compilateur ne peut pas choisir la méthode correcte car votre modèle est dynamique. Changez l'appel à:

@Html.RenderPartial("~/Views/Inquiry/_InquiryList.cshtml", (List<string>)Model.InquiryList)


0 commentaires

24
votes

Le RenderPartial ne renvoie pas une valeur de chaîne ou d'ihtmlling. Mais le rendu en appelant écrit-il dans la réponse.

Vous pouvez utiliser le partiel extension, cela renvoie un MVCHTMLString xxx

ou xxx

si vous vraiment envie de rendupartial


1 commentaires

L'écriture sur le flux de réponses directement est considérée comme plus efficace, cependant, vous devriez toujours y aller pour rendupartial à moins que vous n'ayez besoin de la partielle comme une chaîne pour l'édition ou une autre raison.



2
votes

N'oubliez pas d'inclure votre directive Fortement typée @model dans votre nouvelle vue Razor. C'est une étape facile à manquer lors de la conversion de la vue de .aspx à .cshtml. Si vous oubliez, que 'system.web.mvc.htmlhelper' n'a pas de méthode applicable nommé "partial" message d'erreur peut apparaître.


0 commentaires