J'ai fait une page partielle de test nommée _ Test.cshtml et l'ai mise dans le même répertoire que ma vue qui l'appellera, la voici:
<div>hi</div>
Et dans la vue cshtml appelante, je mets simplement:
@Html.RenderPartial("_Test")
Ce qui me donne l'erreur:
CS1502: la meilleure correspondance de méthode surchargée pour "System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)" contient des arguments non valides
J'ai également essayé le chemin complet avec le même résultat.
Je suis très confus quant à la raison pour laquelle cela agit de cette façon, je suppose que je manque quelque chose de simple?
Vous obtenez cette erreur car Html.RenderXXX
helpers return void - ils n'ont rien à retourner car ils écrivent directement des choses * à la réponse. Vous devez les utiliser comme ceci:
@{ Html.RenderPartial("_Test"); }
Il existe également une aide Html.Partial, qui fonctionnera avec votre syntaxe, mais je ne recommanderais pas de l'utiliser à moins que vous ne deviez le faire, en raison des performances (il compose d'abord une vue partielle donnée dans une chaîne, puis la vue parent la met en réponse * ).
* ce n'est pas entièrement vrai, ils sont en fait rendus dans ViewContext.Writer et une fois que la page entière est rendue et composée, le tout va à la réponse