TOC

This article is currently in the process of being translated into French (~87% done).

Démarrage:

Créer un contrôleur

Dans le dernier article, nous avons créé notre premier projet ASP.NET MVC. Il avait un comportement par défaut pour afficher un simple message à tout le monde, mais de toute évidence, nous voulons faire plus que ça ! La première chose à faire sera d'ajouter à notre application MVC presque vide un contrôleur.

Comme nous l'avons brièvement dit plus tôt, le Contrôleur agit comme un intermédiaire - il combinera notre Modèle avec une Vue et donnera le résultat à notre utilisateur. Cependant, un modèle ou une vue n'est pas requise - Le contrôleur peut agit par lui même pour les opérations les plus basiques, par exemple renvoyer un simple message textuel ou rediriger l'utilisateur quelque part.

Cependant, nous devons faire certaines choses avant d'ajouter un nouveau contrôleur à notre projet.

Ajouter le support MVC à un projet Web

Dans l'article précédent, nous avons créé un nouveau projet web en utilisant un modèle vide. Ceci nous laisse avec une application web basique, donc nous avons besoin d'ajouter le support MVC, afin d'indiquer au framework .NET et au serveur web la façon de gérer les requêtes entrantes, etc. Vous souvenez-vous du fichier Startup.cs que nous avons modifié dans l'article précédent ? Il est temps de l'ouvrir de nouveau dans Visual Studio et de regarder dans la méthode ConfigureServices. Pour le moment elle est vide, mais changeons ceci en ajoutant la ligne suivante :

services.AddMvc();

La méthode devrait désormais ressembler à ceci :

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
}

We also need to modify the Configure() method - previously, it contained some code to output our "Hello, MVC world!" message, but we want our new Controller to handle this task in the future. Your web application needs to know how to map incoming requests to your controllers and for this, it uses the concept of routes. We will talk a lot more about routing later on, because it's a slightly complex subject, but for now, we will use a couple of lines of code, found at the bottom of the below code example, to add default routing to the application. So, modify your Configure() method in the Startup.cs file so that it looks like this:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if(env.IsDevelopment())
    {
app.UseDeveloperExceptionPage();
    }

    app.UseRouting();
    app.UseEndpoints(endpoints =>
    {
endpoints.MapDefaultControllerRoute();
    });
}

Nous sommes enfin prêts à ajouter notre tout premier contrôleur !

Ajouter un contrôleur

La structure du projet MVC dépend de vous - Vous pouvez placer tous les contrôleurs, toutes les vues, tous les modèles et tous les autres fichiers à la racine si vous le désirez. Cependant, c'est en général une bonne idée de séparer les différentes choses dans des dossiers correspondants, par exemple un dossier "Controllers" pour vos contrôleurs, un dossier "Views" pour vos vues, etc. Une fois que vous serez habitués à une certaine structure, que cela soit une structure commune ou une structure personnelle, vous arriverez à naviguer dans votre projet de façon beaucoup plus simple.

Pour commencer, ajoutons un dossier à notre projet que nous appellerons "Controllers". Effectuez un clic droit sur votre projet dans l'explorateur de solutions et choisissez Ajouter -> Nouveau fichier, comme ceci :

Une fenêtre de dialogue s'ouvrira afin de demander un nom pour le nouveau dossier - Ecrivez simplement Controllers. Avec ceci en place, nous pouvons désormais ajouter notre premier contrôleur à notre projet. Faites un clic droit sur ce nouveau dossier et choisissez Ajouter -> Nouveel élément..., comme ceci :

Visual Studio proposera d'ajouter différents modèles à notre nouveau contrôleur, ce qui signifie qu'il pourra être créé avec différentes méthodes pour faire diverses choses. Cependant, puisque ce tutoriel a pour but de tout créer à partir de zéro, nous allons sélectionner celui nommé Contrôleur MVC - Vide et cliquer sur le bouton Ajouter.

Un dialogue s'ouvrira pour nous demander le nom de notre nouveau contrôleur. Nous l'appellerons HomeController, donc écrivez ceci dans la boite de dialogue et appuyea sur Ajouter. Un nouveau contrôleur sera généré pour vous et il devrait ressembler à ceci :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

namespace HelloMVCWorld.Controllers
{
    public class HomeController : Controller
    {
public IActionResult Index()
{
    return View();
}
    }
}

Comme vous pouvez le remarquer, il ressemble fortement à une classe C#. Il hérite de la classe Controller, ce qui indique au framework .NET qu'il s'agit d'une classe à traiter comme un contrôleur MVC. Il possède une méthode nommée Index(), qui tentera de retourner la vue par défaut en appelant la méthode View(). Le framework .NET sera également capable de trouver sa propre vue, si elle existe, dans l'une des multiples places où il est configuré pour chercher. Cependant, nous n'avons pas encore atteint la partie du tutoriel où l'on ajoute les vues, donc changeons cette méthode afin de renvoyer le fameux message "Hello, MVC World!". Changez cette simple ligne afin qu'elle ressemble à ceci :

public IActionResult Index()
{
    return Content("Hello, MVC world!");
}

Et c'est tout - Nous avons désormais un Contrôleur avec une méthode Index, que nous appellerons lorsque nous lancerons le projet, grâce au routage par défaut que nous avons appliqué précédemment. Appuyez sur F5 pour lancer notre projet et voyez par vous-même, notre projet affiche bien notre salutation au monde dans notre navigateur par défaut.

Conclusion

Nous avons désormais créé la première partie d'un projet MVC : Le Contrôleur. De vrais projets vont certainement contenir plus qu'un seul contrôleur, mais pour le moment gardons ce fonctionnement et passons au prochains articles, où nous introduirons la Vue, puis le Modèle. A ce point, MVC peut sembler très compliqué, mais quand vous comprendrez les concepts de base, cela commencera à sembler logique.

De plus, soyez certain qu'il y a beaucoup plus à apprendre sur les contrôleurs que ce dont nous avons parlé dans cet article - Il s'agit simplement d'une introduction au concept ainsi qu'une façon pour vous d'avoir votre premier projet MVC fonctionnel. Plus tard, nous parlerons plus des Contrôleurs !

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!