.net Core 6 Mvc Crud Example

7 min read Jun 03, 2024
.net Core 6 Mvc Crud Example

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

  1. Créer un nouveau projet ASP.NET Core Web Application dans Visual Studio.
  2. Choisir le modèle "Application Web ASP.NET Core".
  3. Sélectionner "MVC" comme framework web.
  4. Activer l'authentification individuelle pour la gestion des utilisateurs.

Création du modèle de données

  1. 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; }
    }
}
  1. 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

  1. Installer le package NuGet "Microsoft.EntityFrameworkCore.SqlServer" dans le projet.
  2. 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"
  }
}
  1. 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

  1. Créer un contrôleur appelé "ProduitsController" dans le dossier Controllers.
  2. 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);
        }
    }
}
  1. Créer les vues correspondantes (Index, Details, Create, Edit, Delete) dans le dossier Views/Produits.

Exécution de l'application

  1. Exécuter l'application en appuyant sur F5 ou en cliquant sur le bouton "Démarrer" dans Visual Studio.
  2. Accéder à la page "/Produits" pour voir la liste des produits.
  3. 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#

Related Post


Featured Posts