MVC est synonyme de modèle-vue-contrôleur. MVC est un pattern pour développer des applications qui sont
bien architecturé, testables et facile à entretenir. MVC veut dire :
• Model : Classes qui représentent les données de l'application et qui utilisent une logique de validation pour faire
respecter les règles de métier.
• View : fichiers de modèle que votre application utilise pour générer dynamiquement les réponses HTML.
• Controller : Classes qui gèrent les demandes entrantes de navigateur, récupérer des données de modèle et
ensuite spécifier des modèles de vue qui retournent une réponse au navigateur.
Comme vous remarquez la barre d'adresse du navigateur contient : localhost:port# et non pas quelque chose comme
example.com. C'est parce que localhost pointe toujours vers votre ordinateur local, qui dans ce cas exécute
l'application que vous venez de créer. Lorsque Visual Studio exécute un projet web, un port aléatoire est utilisé pour le
serveur web. Dans l'image ci-dessus, le numéro de port est 7221.
faites un clic droit sur le dossier controllers, puis cliquez sur Add, puis controller.
5. Puis cliquer sur MVC -
6. Nommez le nouveau
contrôleur
ProduitController
Dans L'Explorateur un nouveau fichier a été créé nommé ProduitController.cs Le contrôleur est ouvert
dans l'IDE.
return View(produits);
}
Le contrôleur est appelé ProduitController et la première méthode ou Action est nommée Index. Nous
Lorsque vous exécutez l'application et vous ne fournissez pas des segments d'URL, il utilise par défaut le contrôleur «
Home » et la méthode d'action « Index » spécifié dans la section valeurs par défaut du code ci- dessous.
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
• La première partie de l'URL détermine le contrôleur qu’on veut exécuter. Si /Produit alors la classe
ProduitController sera appelée.
• La deuxième partie de l'URL détermine la méthode d'action à Exécuter. Si /Produit/Index alors la méthode
Index de la classe ProduitController sera exécutée.
Une méthode nommée Index est la méthode par défaut et elle sera appelée sur un contrôleur si on n’a pas spécifié la
méthode explicitement.
• La troisième partie du segment URL (id ?) c’est pour acheminer les données.
Accédez à http://localhost:xxxx/Produit/Index.
Dans l'exemple ci-dessus, le segment d'URL ( ?Id) est utilisé et est transmis sous forme de paramètres de
requête.
La méthode de Index ci-dessus utilise un modèle d'affichage pour générer une réponse en HTML qui sera envoyer au
navigateur du client. Les Méthodes des contrôleurs (également connues comme des action), telle que la méthode de
Index ci-dessus, retournent généralement un ActionResult (ou une classe dérivée de ActionResult), et non pas des
types primitifs comme les chaînes de caractères.
@model IEnumerable<Application2022.Models.Produit>
Localiser @RenderBody().
RenderBody permet d’injecter
les vues « encapsulées » dans le
conteneur.
5. Modifier le contenu de l'élément title. Changer le texte de la classe dans le layout du "Nom de
l'Application" à "Products Application" et le contrôleur de Home à Produit. Le fichier complet de mise
en page est illustré ci-dessous :
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-
white border-bottom box-shadow mb-3">
<div class="container-fluid">
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-
action="Index">Application2022</a>
<button class="navbar-toggler" type="button" data-bs-
toggle="collapse" data-bs-target=".navbar-collapse" aria-
controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-
content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-
controller="Home" asp-action="Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-
controller="Home" asp-action="Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
A présent, nous voulons ressortir la barre de navigation dans une vue partielle.
Une vue partielle est une vue non-complète (On ne trouve pas toutes les balises : ` html, head, body...) utilisée pour factoriser une
partie du code répétée dans les différentes vues de l’application.
6. Créer une vue partielle « _Nav_Bar.cshtml » et l’appeler au niveau du _Layout.
- Model (Modèle en français) : le modèle contient les données. Généralement, ces données proviennent d’une
base de données ou d’un service externe comme un API.
- View (Vue en français) : la vue correspond à ce qui est affiché (la page web dans notre cas). La vue contient
les différents composants graphiques (boutons, liens, listes) ainsi que le texte.
- ViewModel (Vue-Modèle en français) : ce composant fait le lien entre le modèle et la vue. Il s’occupe de gérer
les liaisons de données et les éventuelles conversions. C’est ici qu’intervient le binding.
PART III C’est à vous
On veut à présent passer deux modèles à la vue (Produit et Client)
1. Ajouter une classe Client (Id, Nom)
2. On veut passer à la vue un produit et une Liste de Clients (Penser à ajouter ViewModel)
3. Lister (statique) les enregistrements au niveau du contrôleur (retourner le VM)
4. Changer le modèle assigné à la vue
5. Récupérer les détails du client par son Id.