Inclusion de la vue partielle lors de la compilation ASP MVC

J’ai deux vues différentes qui font jusqu’à 500 appels de vues partielles vers une vue partielle commune. Une bonne conception me dit que je devrais laisser la vue partielle en place et la référencer à partir des deux vues superposées pour éviter la duplication de code. Malheureusement, les performances en pâtissent: le copier-coller de la vue partielle dans chacune des deux autres vues produit une amélioration de 300 ms.

Y a-t-il un moyen que je puisse, inclure une vue partielle dans une vue superposée, tirer parti des avantages en termes de performances de ne pas utiliser l’appel réel de Partial (), tout en n’ayant pas à gérer de code en double? Remarque – Je me rends compte que je pourrais écrire une sorte d’extension VS copiant-collant le code de la vue, mais je recherche d’autres options …

Ce qu’il faut essayer pour améliorer les performances:

  • Utilisez @{Html.RenderPartial("_foo");} au lieu de @Html.Partial("_foo") pour inclure le @Html.Partial("_foo") partiel.
  • Faites toujours votre benchmarking en mode Release. De nombreuses optimisations et mise en cache sont effectuées par ASP.NET MVC, contrairement au mode débogage.

Si les 2 suggestions précédentes n’ont pas généré les performances requirejses, vous pouvez essayer de remplacer le partiel par un assistant HTML personnalisé qui générera le fragment HTML. Cela pourrait fonctionner si le code HTML du partiel n’est pas très complexe.

Je vais sortir avec moi ici, mais avez-vous envisagé d’utiliser une inclusion côté serveur pour injecter le code de la vue partielle, plutôt que de l’appeler? Je n’ai absolument aucune preuve, empirique ou subjective, que ce serait plus rapide. Juste quelque chose qui vaut la peine d’essayer.