web-dev-qa-db-fra.com

Syntaxe Html.RenderPartial () avec Razor

Cela fonctionne car il renvoie le résultat du rendu de vue partielle dans une chaîne:

@Html.Partial("Path/to/my/partial/view")

Mais je préfère utiliser RenderPartial et il me semble que je dois écrire:

@{Html.RenderPartial("Path/to/my/partial/view");}

au lieu de:

@Html.RenderPartial("Path/to/my/partial/view");

Pour que ça marche. Message d'erreur:

 Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments

S'il y a une meilleure façon au lieu d'ouvrir le bloc de code @{...} juste pour un appel de méthode?

91
artvolk
  • RenderPartial() est une méthode void qui écrit dans le flux de réponse. Une méthode vide, en C #, nécessite un ; Et doit donc être entourée de { }.

  • Partial() est une méthode qui renvoie un MvcHtmlString . Dans Razor, vous pouvez appeler une propriété ou une méthode qui renvoie une telle chaîne avec simplement un préfixe @ Pour la distinguer du code HTML brut que vous avez sur la page.

140
Ofer Zelig

Html.RenderPartial () est une méthode void - vous pouvez vérifier si une méthode est une méthode void en plaçant votre souris sur l'appel à RenderPartial dans votre code et vous verrez le texte (extension) void HtmlHelper.RenderPartial. ..

Les méthodes d'annulation nécessitent un point-virgule à la fin du code appelant.

Dans le moteur de vue Webforms, vous auriez encapsulé votre appel Html.RenderPartial () dans les piqûres d'abeilles <%%>

ainsi

<% Html.RenderPartial("Path/to/my/partial/view"); %>

lorsque vous utilisez le moteur de vue Razor, l'équivalent est

@{Html.RenderPartial("Path/to/my/partial/view");}
45
Nicholas Murray
@Html.Partial("NameOfPartialView")
9
RouR

Si ce format vous est attribué, cela prend comme un lien vers une autre page ou un autre lien.partial vue principalement utilisée pour le rendu des fichiers HTML d'un endroit à un autre.

0
Sankar