mon application a beaucoup de tables de support qui nécessite l'interface admin d'interface utilisateur pour maintenir - par exemple: pays, états, villes etc. Je ne sais pas s'il serait logique d'ajouter des actions CRUD pour chacun d'entre eux dans un AdminController ou créer un contrôleur pour chaque table de support individuelle.Tables de support - créer un contrôleur pour chaque?
Répondre
Si votre code est hautement répétitif et que vous disposez des abstractions de couche de données appropriées (par exemple, modèle de référentiel, injection de dépendance), vous pouvez créer un contrôleur d'administration générique et le sous-typer.
public abstract class AdminController<T> : Controller
{
protected IRepository<T> _Repository;
protected AdminController(IRepository<T> repo)
{
_Repository = repo;
}
public ViewResult List()
{
var all = _Repository.GetAll(); // todo paging, sorting, etc -- I'd use a service layer to do this
return View(all);
}
public ViewResult Edit(int id)
{
var item = _Repository.GetById(id);
return View(item);
}
// and so on...
}
Ensuite, les contrôleurs réels:
public class PostController : AdminController<Post>
{
public PostController(IRepository<Post> repo) : base(repo) {}
}
Bien sûr, vous aurez toujours besoin de faire toutes les vues.
Ryan, je pense que c'est exactement ce que j'essaie de faire - même si je dois comprendre un peu plus les génériques pour pouvoir l'implémenter. L'utilisateur bzlm a posté un lien vers un article qui parle de gros contrôleurs, ce qui est un peu la direction que je cherche aussi. La meilleure pratique serait de garder les contrôleurs maigres et les modèles gros et comme beaucoup d'actions CRUD sont similaires, utilisez votre solution d'abstraction. Si je n'impose pas trop, avez-vous un code de travail/lien vers le blog où vous l'avez expliqué afin que je puisse l'essayer moi-même? J'essaie toujours de mettre mes mains/tête autour de MVC2 ...! – uberDesi
- 1. Ressources pour créer un support SNMP pour mon périphérique?
- 2. Visual Studio - Possibilité de créer un support pour d'autres langues?
- 3. Comment créer un site bilingue sans créer de page ASP distincte pour chaque langue?
- 4. Comment créer un modèle (table) pour chaque utilisateur sur django?
- 5. Créer un contrôleur de 2 viewController
- 6. Impossible de créer un contrôleur dans Magento
- 7. Constructeur du contrôleur appelé à chaque requête
- 8. StructureMap recherche de contrôleur scripts chaque page
- 9. Placer un support de position pour l'image
- 10. Comment créer un formulaire Web pour chaque utilisateur?
- 11. iPhone Ajouter un support pour Document d'information
- 12. HTML pour créer le tournoi final quatre support?
- 13. Comment créer un DB qui contient toutes mes tables (tables de ASPNETDB et mes autres tables)?
- 14. Comment créer une autre action de contrôleur pour créer un objet dans des rails?
- 15. Créer un formulaire de connexion dans un autre contrôleur
- 16. Devrais-je créer une interface pour chaque modèle?
- 17. Outil de ligne de commande pour créer un script pour des tables MSSQL spécifiques
- 18. Comment créer un "clone" de contrôleur dans Grails?
- 19. support IE pour DOM importNode
- 20. IDE Support pour WinForms
- 21. Comment utiliser PHP fgetcsv pour créer un tableau pour chaque donnée dans un fichier csv?
- 22. Wordpress.com utiliser un ensemble de tables pour tous les utilisateurs?
- 23. Obtenir un compte de chaque produit pour chaque ID
- 24. Qt support pour VNC
- 25. Comment créer un bon contrôleur de navigation iPhone en mode paysage?
- 26. Comment peut-on créer un contrôleur générique (conteneur) qui recevra en entrée un autre contrôleur
- 27. comment réinitialiser le contrôleur de vue à chaque fois
- 28. iPhone: tables groupées et problèmes de contrôleur de navigation
- 29. Un support commercial sharpziplib?
- 30. Script pour ajouter un index sur chaque clé étrangère?
La solution AdminController n'aurait de sens que si vous construisiez des méthodes d'action réutilisables - les méthodes pour chaque entité différente se retrouveraient avec un Fat Controller: http://codebetter.com/blogs/ian_cooper/archive/2008/12/03/ the-fat-controller.aspx – bzlm