Nous affichons la liste des voitures dans différents points de vue à différents endroits sur notre site Web. Par exemple:Devrions-nous créer des vues partielles séparées pour les listes qui semblent presque similaires?
- https://jsfiddle.net/yxrveass/: Détails de l'image et de la voiture côte à côte.
- https://jsfiddle.net/sa44zaz2/: Les détails de voiture viennent juste au-dessous de l'image de voiture.
Nous avons actuellement créé deux vues partielles pour ces savoir
@model IEnumerable<MVCDemo.Models.Cars>
@foreach (var car in Model)
{
@Html.Partial("_Car1", car); //Partial view when Image and car details side by side.
}
@model IEnumerable<MVCDemo.Models.Cars>
@foreach (var car in Model)
{
@Html.Partial("_Car2", car); //Partial view when Car details come just below the car image.
}
Le problème que je vois ici est le coût élevé de maintenance. Demain, si nous voulons afficher un champ de plus dans l'interface utilisateur, c'est-à-dire la ville, nous devrons faire les mêmes changements aux vues partielles _Car1 et _Car2. Pouvons-nous combiner le code de ces deux vues partielles afin que nous ayons toutes les informations de voiture dans un fichier cshtml? (tout en conservant les différences de conception subtiles telles quelles)
Vous pouvez les combiner (par exemple, en utilisant des instructions stratégiques '@ if' dans le fichier .cshtml), mais je ne le ferais pas.Ajouter un champ à deux endroits n'est pas un «coût élevé» par rapport à la complexité de maintenir une vue qui «fait tout». –
Il y a trop d'options ici, et bien qu'il existe plusieurs approches de meilleures pratiques à utiliser pour refactoriser des vues, celles-ci ne s'appliqueront que vaguement à une vue personnalisée comme celle-ci et varieront considérablement plus le détail de l'implémentation est révélé. Pour quelque chose de si petit, faites juste ce qui fonctionne, et si cela devient incontrôlable, refactoriser. –