Chapitre 6 Initiation À ASP - NET CORE MVC
Chapitre 6 Initiation À ASP - NET CORE MVC
Chapitre 6 Initiation À ASP - NET CORE MVC
NET CORE
Réalisé par : Malek ZRIBI
Auditoire : 3ème Génie Informatique et Master 2
CHAPITRE 2 :
Initiation à ASP.NET Core MVC
Plan du Chapitre
• Le modèle MVC
• Installer le package MVC
• Ajout de modèle
• Injection des dépendances
• Le contrôleur
• Les méthodes d'action
• ActionResults
• Sélecteurs d'action
• Les vues
• Création de vues
• Afficher une collection dans une vue
• Création d'une vue Edit
Le Modèle MVC
• MVC est un modèle architectural qui sépare les applications en trois
composants : modèle, vue et contrôleur.
Le Modèle MVC
• Modèle : Le modèle représente la forme des données et la logique métier. Il
maintient les données de l'application. Les objets de modèle récupèrent et
stockent l'état du modèle dans une base de données.
• View : View est une interface utilisateur. Affiche les données en utilisant le
modèle à l'utilisateur et permet également de modifier les données.
http://Localhost:1234/Employee/Details/1
http://Localhost:1234/Employee/Details/1
Le Modèle MVC
Le Modèle MVC
Conclusion :
• MVC est un modèle de conception architecturale pour la mise en œuvre de la
couche d'interface utilisateur d'une application.
• Modèle: ensemble de classes qui représentent des données + la logique pour
gérer ces données. Exemple - Classe Employee qui représente les données de
l'employé + la classe EmployeeRepository qui enregistre et récupère les données
des employés à partir de la source de données sous-jacente telle qu'une base de
données.
• Vue: contient la logique d'affichage pour présenter les données du modèle qui lui
sont fournies par le contrôleur.
• Contrôleur: gère la requête http, travaille avec le modèle et sélectionne une vue
pour rendre ce modèle.
Installer MVC dans un projet ASP.NET Core
• Etape 1 :
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(option => option.EnableEndpointRouting = false);
}
• Etape 2 :
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{ app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseMvcWithDefaultRoute();
RQ: Si vous créez un projet avec Template MVC, le service et le middleware seront installés par défaut
Ajouter un modèle
• Un ensemble de classes qui représentent les données de l'application et les
classes qui gèrent ces données. Par exemple pour gérer les données des
employés d'une entreprise, une classe employé doit être créée.
• Ajouter un dossier Models sous la racine du projet.
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string Department { get; set; }
}
• Pour gérer les données des employés, il faut créer une interface et une classe
public interface IEmployeeRepository
{
Employee GetEmployee(int Id);
}
Ajouter un modèle
public class EmployeeRepository : IEmployeeRepository
{
private List<Employee> employeeList;
public EmployeeRepository()
{
employeeList = new List<Employee>() {
new Employee() { Id = 1, Name = "Ali", Department = "HR", Email = "ali@societe.com" },
new Employee() { Id = 2, Name = "Mourad", Department = "IT", Email = "mourad@societe.com" },
new Employee() { Id = 3, Name = "Sofien", Department = "IT", Email = "sofien@societe.com" },
};
}
• La méthode d'action doit être publique. Elle ne peut pas être privée ou protégée
• La méthode d'action ne peut pas être surchargée
• La méthode d'action ne peut pas être une méthode statique.
Exemples de méthodes d'action
• On ajoute à HomeController une méthode Details qui retourne les informations
de l'employé ayant l'ID=1.
• Avec le type JsonResult Le résultat retourné est au format Json.
Exemples de méthodes d'action
• Le type ObjectResult retourne par défaut un résultat json mais on peut aussi avoir le
résultat au format xml.
• Le type ViewResult retourne les données résultats a un view qui doit être ajoutée.
Action Results
• Lorsque l'action a terminé son travail, elle retournera généralement quelque chose au
client et ce quelque chose implémentera généralement l' interface IActionResult (ou
Task <IActionResult> si la méthode est asynchrone).
• ActionResult est l'implémentation par défaut de IActionResult
• Le tableau suivante liste quelques résultats d'action qui implémentent IActionResult.
Méthodes
Http Usage
GET Récupérer les informations du serveur. Les paramètres seront ajoutés à la chaîne
de requête
POST Pour créer une nouvelle ressource
OPTIONS La méthode OPTIONS représente une demande d'informations sur les options de
communication prises en charge par le serveur Web
DELETE Pour supprimer une ressource existante
return View(studentList);
}
Affichage du contenu d’une collection de type liste
Si on exécute le projet par F5, et on tape l’URL : http://localhost:xxxx/Student on
obtient le résultat suivant :
Création d’une vue Edit
• Ajouter une méthode d'action Edit dans StudentController.
Création d’une vue Edit
• Choisir le Template Edit et la classe Student comme modèle.
Création d’une vue Edit
• Dans Index.cshtml ajouter StudentId comme paramètre du lien Html.ActionLink
Création d’une vue Edit
• Exécuter la vue Index, choisir un étudiant et cliquer sur Edit
Création d’une vue Edit
• La figure suivante décrit les étapes de la fonctionnalité Edit d'un étudiant :
Création d’une vue Edit
• La dernière étape consiste à ajouter la méthode en version Httppost de l’action Edit
dans le contrôleur Student.
[HttpPost]
public ActionResult Edit(Student std)
{
//écrire ici le code de modification d’un Student
return RedirectToAction("Index");
}