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?
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.
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");}
@Html.Partial("NameOfPartialView")
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.