102 votes

Html.RenderPartial me donne erreur de surcharge étrange ?

J'ai fait un test de page partielle nommé _Test.cshtml et le mettre dans le même répertoire que mon point de vue, qui sera en l'appelant, elle est ici:

<div>hi</div>

Et dans l'appel de la cshtml vue, j'ai simplement mis:

@Html.RenderPartial("_Test")

Ce qui me donne l'erreur:

CS1502: La meilleure méthode surchargée match pour la 'Système.Web.Les pages web.WebPageExecutingBase.Écrire(Système D'.Web.Les pages web.HelperResult)' a certains arguments invalides

J'ai aussi essayé le chemin complet avec le même résultat. Je suis très confus quant à pourquoi c'est en agissant de cette façon, je suppose que je suis absent quelque chose de simple...? Merci pour la recherche.

189voto

Lukáš Novotný Points 5948

Vous obtenez cette erreur, car Html.RenderXXX aides de retour void - ils n'ont rien à retourner parce qu'ils sont à écrire directement à la réponse. Vous devriez utiliser comme ceci:

@{ Html.RenderPartial("_Test"); }

Il y a aussi Html.Partielle assistant, qui va travailler avec votre syntaxe, mais je ne recommande pas de l'utiliser, sauf si vous avez, en raison de la performance (d'abord compose donné, vue partielle en string, puis la vue parente, en la mettant en réponse*).

* ce n'est pas tout à fait vrai, ils sont rendus dans ViewContext.Écrivain et une fois que toute la page est rendue et composé, la chose va de réponse

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X