9-2 Utiliser les modèles de la couche Domain
Le projet Web.Mvc
est dépendant des modèles placés dans le dossier Models
du projet. Les modèles seront cependant contenus dans leur propre projet à partir de maintenant, soit le projet que vous avez créé à l'étape précédente.
Il vous faudra donc déplacer Evenement.cs
vers le projet Domain
et rétablir les références dans les contrôleurs et les vues.
Ajouter une référence au projet Domain
à partir du projet Web.Mvc
.
-
Clic droit
surSnowfall.Web.Mvc
->Add
->Reference
-
Cocher Snowfall.Domain
-
Appuyer sur
Add
Déplacer Evenement.cs
-
Déplacer
Snowfall.Web.Mvc/Models/Evenement.cs
versSnowfall.Domain/Models
en glissant le fichier -
Confirmer
-
Renommer le namespace. Vous aurez un avertissement comme quoi le
namespace
ne correspond plus à celui mentionné dans le nom de fichier. Utilisez l'aide contextuelle de Rider pour renommer lenamespace
automatiquement.
Ajout de la référence à _ViewImports.cshtml
Remarquez que partout où nous utilisons le modèle Evenement
dans les vues, on y fait référence via Snowfall.Domain.Models.Evenement
.
Il est possible de simplifier la ligne d'importation en ajoutant le namespace
(Snowfall.Domain.Models
) au fichier _ViewImports.cshtml
.
On peut donc simplement ajouter la ligne @using Snowfall.Domain.Models
dans Snowfall.Web.Mvc/Views/_ViewImports.cshtml
.
@using Snowfall.Web.Mvc
@using Snowfall.Web.Mvc.Models
@using Snowfall.Domain.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
_ViewImports.cshtml
contient les imports partagés par toutes les vues. On veut garder @using Snowfall.Web.Mvc.Models
puisqu'il s'agit d'un dossier de notre projet et nous continuerons de l'utiliser.
Toutefois, on veut ajouter la référence aux modèles du projet Domain
, doù l'ajout de la ligne @using Snowfall.Domain.Models
.
Simplifier @model
Maintenant, vous pouvez simplement utiliser @model Evenement
plutôt que @model Snowfall.Domain.Models.Evenement
.
Par exemple:
@model Evenement
Vous pouvez renommer le @model
dans les fichiers suivants:
Snowfall.Web.Mvc/Views/Evenements/_Evenement.cshtml
Snowfall.Web.Mvc/Views/Evenements/Index.cshtml
Snowfall.Web.Mvc/Views/Evenements/Show.cshtml