7
votes

Quelle est la meilleure façon d'organiser des vues partielles dans une structure de fichiers?

Je vais potentiellement avoir de nombreuses vues partielles pour mon application qui peut être regroupée dans une structure de dossier. Il semble que je devrais faire cela, sinon je vais un dossier de vue avec des charges de fichiers. Donc je suppose que je devrais avoir quelque chose comme: xxx pré>

Quel serait l'appel HTML.Partial? P>

 HTML.Partial("~/Views/Group1/MyPartialView.cshtml",Model)


1 commentaires

Avez-vous examiné à l'aide de modèles d'éditeur / d'affichage par type de modèle réel? Il vous permet de relier une vue sur un type de modèle à une manière globale du système sans avoir à fournir manuellement les noms des vues partielles. ( Stackoverflow.com/a/5497234/1373170 )


3 Réponses :


5
votes

Vous pouvez utiliser une convention de dénomination de fichier mère parent comme: xxx

Vous pouvez même prendre une étape supplémentaire: xxx

re -Utilisation des partiels est beaucoup moins fréquente que partiels uniques, vous pouvez donc utiliser une convention pour des partiels réutilisables comme: xxx

  • Les limitations sont un grand répertoire de fichiers.

  • Les benifits sont faciles à écrémer, faciles à trier.


5 commentaires

Idée intéressante. En termes de MVC3, pensez-vous que cela est préférable à avoir des dossiers dans le même but, c'est-à-dire en-tête \ header.html, en-tête \ login.html, en-tête \ Searchbar.html


@Samjolly Vous pourriez perdre votre esprit. En outre, le parent dans ce cas n'est pas un dossier, mais le fichier lui-même. Le partiel au parent qui est.


@Monkieboy Si vous avez une très grande application Web, votre répertoire de fichiers sera grand, mais il sera facilement scimmable. C'est-à-dire que tous les parents seront en blocs et les partiels seront alphabétiques.


C'est intéressant, mais il semble que cela lie votre point de vue partiel explicitement à la vue de la page (même si cela ne le fait pas). Donc, si vous avez une partielle qui doit être utilisée par deux vues différentes (disons producteurInfo utilisé par les deux et et productDétails ), que serait Vous nommez la partielle? À la fin, c'est juste un nom, vous pourriez donc nommer ce que vous voulez et toujours l'utiliser n'importe où, mais une convention comme celle-ci vous donne l'apparence que vous le limitez.


@Joeenos c'est un bon point. Je pense que mabye dans ce cas vous pouvez utiliser un Global.Name.HTML Convention. La réutilisation des partiels est beaucoup moins fréquente que des partiels uniques.



5
votes

J'ajoute généralement un _ devant une partielle. Exemple serait une vue principale appelée home.cshtml. Les pièces (partielles) sur la page auraient quelque chose comme ceci: _header.cshtml, _footer.cshtml, etc.


2 commentaires

Merci pour cela. Oui au courant de l'approche "_". Le problème est de ne pas distinguer les partiels, mais comment organiser le grand nombre de partiels différentes.


Ah, je vois. J'ai un problème similaire. J'ai hérité d'une quantité massive d'entre eux dans mon projet actuel. Pour le moment, je l'ai laissé être comme c'est parce qu'il était plus facile de traiter (mélanger des partiels et des vues). Je suggérerais presque de faire un dossier pour eux, mais en même temps je ne suis pas sûr. Désolé, je ne peux plus être une aide que ça.



6
votes

Tant qu'ils sont dans le répertoire quelque part, cela ne devrait pas vraiment importer. Si vous le mettez dans un emplacement autre que vues / {contrôleur} ou vues / partagée , vous aurez alors besoin de l'emplacement complet, y compris Vues et l'extension, donc @ html.partial ("~ / vues / group1 / partialview1.cshtml") .

Personnellement, si vous avez beaucoup de partiels utilisées dans un seul contrôleur, je les laisserais dans le répertoire {contrôleur-nom} (avec un soulignement de premier plan comme @iyataisho suggéré). Mais s'ils sont utilisés par plusieurs contrôleurs et que vous devez les regrouper, je les grouperais sous Vues / partagée / {groupeName} . .

En ce qui concerne un grand vs. beaucoup de petites partielles, je dirais aller avec de nombreux petits. Il pourrait y avoir une raison de faire un grand de temps en temps, mais en général, je pense qu'une partielle devrait être aussi simple que possible. N'oubliez pas que vous pouvez toujours avoir des partiels imbriqués, donc si vous avez une fonctionnalité partagée ou une mise en page parmi de nombreuses partielles, vous pouvez la rompre dans un parent partiel et de nombreux partiels d'enfants en dessous.


1 commentaires

Merci pour cela. En fait, j'ai un contrôleur générique que j'utilise pour rendre différentes parties d'un rapport, toutes les sections d'un chapitre "Introduction" seraient rendues en utilisant "Introduction" partielles, c'est-à-dire "Introduction.Section1", "Introduction.Section2". Dans mon scénario, je ne crois pas avoir des sections communes à travers des chapitres, je pourrais donc aller avec le "fichier". Idée, mais le dossier Vues serait grand, pourquoi je envisageons l'utilisation de sous-dossiers.