Développez une application CRUD avec ASP.NET Core 6 MVC
ASP.NET Core 6 MVC est un framework puissant et flexible pour construire des applications web modernes. L'une des fonctionnalités les plus courantes de ces applications est la possibilité de créer, lire, mettre à jour et supprimer (CRUD) des données. Dans cet article, nous allons créer un exemple simple d'application CRUD utilisant ASP.NET Core 6 MVC.
Prérequis
- Visual Studio 2022 ou Visual Studio Code avec l'extension C#
- .NET 6 SDK
- Connaissance de base de ASP.NET Core MVC
Configuration du projet
- Créer un nouveau projet ASP.NET Core Web Application dans Visual Studio.
- Choisir le modèle "Application Web ASP.NET Core".
- Sélectionner "MVC" comme framework web.
- Activer l'authentification individuelle pour la gestion des utilisateurs.
Création du modèle de données
- Créer une nouvelle classe appelée "Produit" dans le dossier Models :
using System.ComponentModel.DataAnnotations;
namespace CRUDExample.Models
{
public class Produit
{
[Key]
public int Id { get; set; }
[Required]
public string Nom { get; set; }
[Required]
public string Description { get; set; }
public decimal Prix { get; set; }
}
}
- Créer une classe de contexte de données appelée "ApplicationDbContext" dans le dossier Data :
using Microsoft.EntityFrameworkCore;
namespace CRUDExample.Data
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions options) : base(options) { }
public DbSet Produits { get; set; }
}
}
Configuration du contexte de données
- Installer le package NuGet "Microsoft.EntityFrameworkCore.SqlServer" dans le projet.
- Modifier le fichier "appsettings.json" pour configurer la connexion à la base de données SQL Server :
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=CRUDExampleDb;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
- Enregistrer le contexte de données dans le fichier "Startup.cs" (ou "Program.cs" pour les versions plus récentes de .NET):
// dans Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
// ...
}
Création des vues
- Créer un contrôleur appelé "ProduitsController" dans le dossier Controllers.
- Ajouter les actions CRUD suivantes au contrôleur :
using Microsoft.AspNetCore.Mvc;
using CRUDExample.Data;
using CRUDExample.Models;
namespace CRUDExample.Controllers
{
public class ProduitsController : Controller
{
private readonly ApplicationDbContext _context;
public ProduitsController(ApplicationDbContext context)
{
_context = context;
}
// Index: Affiche tous les produits
public IActionResult Index()
{
return View(_context.Produits.ToList());
}
// Details: Affiche les détails d'un produit
public IActionResult Details(int? id)
{
if (id == null)
{
return NotFound();
}
var produit = _context.Produits.Find(id);
if (produit == null)
{
return NotFound();
}
return View(produit);
}
// Create: Affiche le formulaire de création d'un produit
public IActionResult Create()
{
return View();
}
// Create: Enregistre un nouveau produit
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create([Bind("Nom,Description,Prix")] Produit produit)
{
if (ModelState.IsValid)
{
_context.Add(produit);
_context.SaveChanges();
return RedirectToAction(nameof(Index));
}
return View(produit);
}
// Edit: Affiche le formulaire de modification d'un produit
public IActionResult Edit(int? id)
{
if (id == null)
{
return NotFound();
}
var produit = _context.Produits.Find(id);
if (produit == null)
{
return NotFound();
}
return View(produit);
}
// Edit: Met à jour un produit existant
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Edit(int id, [Bind("Id,Nom,Description,Prix")] Produit produit)
{
if (id != produit.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
_context.Update(produit);
_context.SaveChanges();
return RedirectToAction(nameof(Index));
}
return View(produit);
}
// Delete: Supprime un produit
public IActionResult Delete(int? id)
{
if (id == null)
{
return NotFound();
}
var produit = _context.Produits.Find(id);
if (produit == null)
{
return NotFound();
}
return View(produit);
}
// Delete: Confirme la suppression d'un produit
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public IActionResult DeleteConfirmed(int id)
{
var produit = _context.Produits.Find(id);
_context.Produits.Remove(produit);
_context.SaveChanges();
return RedirectToAction(nameof(Index));
}
private bool ProduitExists(int id)
{
return _context.Produits.Any(e => e.Id == id);
}
}
}
- Créer les vues correspondantes (Index, Details, Create, Edit, Delete) dans le dossier Views/Produits.
Exécution de l'application
- Exécuter l'application en appuyant sur F5 ou en cliquant sur le bouton "Démarrer" dans Visual Studio.
- Accéder à la page "/Produits" pour voir la liste des produits.
- Tester les fonctionnalités CRUD pour ajouter, modifier et supprimer des produits.
Conclusion
Cet exemple d'application CRUD montre comment créer une application web simple avec ASP.NET Core 6 MVC. Vous pouvez utiliser ce modèle pour développer des applications web plus complexes et enrichies. N'oubliez pas de modifier et d'adapter le code en fonction de vos besoins spécifiques.
Mots clés: ASP.NET Core 6 MVC, CRUD, application web, développement web, base de données, SQL Server, Visual Studio, C#