7-2 Modifier le modèle et le contrôleur
Vous avez travaillé avec des données en mémoire et on s'apprête à utiliser une base de données. Dans un premier temps, un léger changement est à faire pour le modèle Evenement
et ensuite, on doit en quelque sorte "réinitialiser" le contrôleur pour revenir à une version de base.
Modèle Evenement
Le modèle Evenement
contient une référence à Ville
en tant que string
, alors que le champ s'appelle maintenant VilleId
(ville_id
dans Postgres) et est de type int
.
Modifiez la propriété Ville
pour VilleId
:
public class Evenement
{
public int Id { get; set; }
public required string Nom { get; set; }
public string? Description { get; set; }
public string? ImagePath { get; set; }
public DateTime Date { get; set; }
public Decimal Prix { get; set; }
public int Capacite { get; set; }
public required int VilleId { get; set; }
}
On utilise la convention PascalCase
de .Net pour nommer l'attribut, même si cela ne correspond pas à 100% au nom de la colonne dans Postgres. Nous verrons plus loin comment s'assurer que l'association soit tout de même faite automatiquement.
Contrôleur EvenementsController
Ensuite, revenez à un format plus simple pour le contrôleur EvenementsController
. Il s'agit d'une version minimale à partir de laquelle nous travaillerons pour la suite.
[Route("[controller]")]
public class EvenementsController : Controller
{
[Route("/")]
public IActionResult Index()
{
return View(new List<Evenement>());
}
[HttpGet("{id:int}")]
public IActionResult Show(int id, string? option)
{
return View();
}
[HttpGet("{id:int}/edit")]
public IActionResult Edit(int id)
{
return Content("Vue Edit de EvenementsController, id: " + id);
}
}