"Modèle de vue" n'est qu'un modèle. Il n'y a rien de magique dans le nom, mais en général, toute la classe qui est passé à un point de vue (que ce soit pour un simple affichage des données ou à des fins de soumissions de formulaire) est désigné comme un "modèle de vue" et donné un nom comme FooViewModel
ou FooVM
à indiquer qu'il fait partie de cette "vue" de modèle de modèle.
Je ne veux pas aller trop philosophique sur vous, mais je crois qu'un peu de référence sur les modèles dans le jeu sera utile. ASP.NET MVC évidemment assez encourage un MVC (Modèle-Vue-Contrôleur) modèle architectural. Dans MVC le Modèle de conteneur pour l'application de la logique métier. Le Contrôleur est responsable du traitement de la demande, d'aller chercher le modèle, le rendu de la Vue avec ce modèle et de renvoyer une réponse. Cela ressemble à beaucoup de responsabilité mais en réalité, le cadre assure la plus grande partie de derrière les coulisses, les Contrôleurs sont généralement (et devraient) être très clair sur le code. Ils sont responsables pour le minimum de fonctionnalités au fil de tout ce. Enfin, il est responsable de la création de la couche d'INTERFACE utilisateur qui permet à l'utilisateur d'interagir avec les données dans le Modèle. Il n'est pas responsable pour les données lui-même, ni ne devrait être (ViewData/ViewBag est un assez gros violation d'ici, au moins autant que la façon dont il finit par être utilisé par les développeurs dans la pratique).
Donc, cela signifie que la majeure partie de la logique de l'application devrait être dans votre modèle, et qui est généralement une bonne chose. Toutefois, étant donné que le modèle est le havre de données de l'application, il obtient généralement persisté dans une base de données ou similaire. Qui crée des conflits d'intérêts que vous devez maintenant commencer à un équilibre entre ce que les données doivent être conservées et que les données ne devrait exister que pour la fin de l'affichage.
C'est là que les modèles de vue venir. MVVM (Model-View-Vue Modèle), un peu parallèle pattern MVC, reconnaît les problèmes inhérents à un modèle-à-règle-them-all approche. Je n'entrerai pas dans les détails ici, car MVC ne pas utiliser ce modèle. Cependant, la plupart des ASP.NET MVC développeurs ont coopté le Modèle de Vue de MVVM. Ce que vous retrouvez avec une base de données adossés à des entité (le modèle traditionnel) et puis, généralement, plusieurs modèles de vue qui représentent cette entité dans divers états. Cela permet à votre modèle pour contenir la logique d'entreprise qui est pertinent pour la persistance, tandis que le modèle de vue(s) contiennent la logique métier pertinents pour l'affichage, la création et la mise à jour de ce modèle.
J'ai dû abandonner un peu, mais le long et court, c'est que ce que vous faites est tout à fait acceptable. En fait, c'est une bonne pratique. Créer autant de modèles de vue que votre application a besoin, et de les utiliser pour stocker les données et la logique métier nécessaire pour votre point de vue. (Qui inclut des choses comme SelectList
s. Ni votre contrôleur ni vue devriez avoir besoin de savoir comment créer un SelectList
pour une liste déroulante.)