2009-03-27 3 views
2

Disons que j'ai un site Web qui liste des personnes, et chaque personne a plusieurs propriétés, certaines one-to-one (nom, adresse), certaines -many (couleurs préférées, comptes bancaires, etc.)Comment organiser les vues et les contrôleurs de façon hiérarchique quand vous avez un modèle avec beaucoup d'enfants

Dans ma couche de gestion, elle est organisée de manière hiérarchique.

Comment organiser ces commandes et vues? Devrais-je avoir un PersonsController, FavoriteColorsController etc? tous résidant dans le même espace de noms et dossier? Ou devrais-je avoir un seul PersonsController avec beaucoup d'actions, telles que IndexFavouriteColors, UpdateFavoriteColor etc. Les deux options ne sont pas tout à fait cela. Le premier ne montre pas que FavoriteColors est un enfant de Person et ne peut être utilisé que dans le contexte d'une personne. Le second va créer un énorme PersonController.

La même chose avec les vues bien sûr. Le plus beau serait d'avoir

  • Vues/Personnes/index.aspx
  • Vues/Personnes/Details.aspx
  • Vues/Personnes/etc
  • Vues/Personnes/FavoriteColors/index.aspx
  • Vues/Personnes/FavoriteColors/Details.aspx

Dans cet exemple, j'ai donné quelques un-à-plusieurs propriétés à la personne, mais en réalité il y a beaucoup (10+), de sorte que Increa le besoin de clarté.

Merci.

Répondre

0
PersonsController.cs 

public ActionResult Index() 
{ 
    return View(); 
} 
public ActionResult Details() 
{ 
    return View(); 
} 
public ActionResult Info() 
{ 
    return View(); 
} 

....

Faites un clic droit dans chaque méthode et générer des vues

dans le dossier Vues dans un résultat que vous devriez avoir

Views 
----- Persons 
-------------Index 
-------------Details 
-------------Info 
-------------.... 
+0

La personne elle-même n'est pas le problème. C'est la division des points de vue qui sont "enfants" de la vue actuelle. Je veux créer une structure de dossier de vue qui représentent la structure de l'itinéraire comme: /Personne/ /Personne/{id}/détails /Personne/{id}/FavoriteColors/ /Personne/{id}/FavoriteColors/{ id}/détails – Gidon

Questions connexes