Aller au contenu principal

21-3 Modification du formulaire d'inscription

Pour supporter ces nouveaux champs, nous devrons modifier:

  • Le ViewModel associé au formulaire d'inscription, soit CreerCompteViewModel
  • Le formulaire Comptes#New

Modification de CreerCompteViewModel

Au ViewModel CreerCompteViewModel, ajoutez les propriétés suivantes:

Snowfall.Web.Mvc/Models/Comptes/CreerCompteViewModel.cs
//...

[Required(ErrorMessage = "Adresse.Required")]
[Display(Name = "Adresse", Prompt = "Adresse")]
public required string Adresse { get; set; }

[Required(ErrorMessage = "Ville.Required")]
[Display(Name = "Ville", Prompt = "Ville")]
public required string Ville { get; set; }

[Required(ErrorMessage = "CodePostal.Required")]
[Display(Name = "Code postal", Prompt = "Code postal")]
public required string CodePostal { get; set; }

[Required(ErrorMessage = "Province.Required")]
[Display(Name = "Province", Prompt = "Province")]
public required string Province { get; set; }

[Required(ErrorMessage = "Pays.Required")]
[Display(Name = "Pays", Prompt = "Pays")]
public required string Pays { get; set; }

//...
info

Ce ViewModel assume des messages d'erreur associés configurés dans des fichiers ressource. Dans le cadre des notes de cours, à vous de décider si vous créez les messages associés dans les fichiers ressource, mais pour votre projet vous devez utiliser les fichiers ressource!

Modification du formulaire Comptes#New

Modifiez le formulaire pour qu'il accepte les nouvelles propriétés.

De mon côté, j'en ai profité pour simplifier le formulaire afin de mettre plusieurs champs sur une même rangée afin de mieux utiliser l'espace. vous n'avez pas à le faire, mais assurez-vous d'avoir les nouveaux champs dans votre formulaire.

Imgur

attention

Vous devez compléter le formulaire de votre côté, c'est-à-dire ajouter les input pour les nouveaux champs!

Modification de ComptesController#Create

Le contrôleur reçoit les informations du ViewModel et crée un ApplicationUser à partir de ces informations. Pour que le lien s'effectue éventuellement avec la BD, on doit prendre en compte les nouvelles informations reçues sur l'utilisateur.

Ainsi, vous pouvez modifier la fonction Create de ComptesController:

Snowfall.Web.Mvc/Controllers/ComptesController.cs
public async Task<IActionResult> Create(CreerCompteViewModel creerCompteViewModel)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser
{
UserName = creerCompteViewModel.Email,
Email = creerCompteViewModel.Email,
Prenom = creerCompteViewModel.Prenom,
Nom = creerCompteViewModel.Nom,
InformationClient = new InformationClient
{
// Faites l'association entre les attributs de `InformationClient` et les attributs du `ViewModel`
}
};

//...
attention

Cette portion est à compléter!

Faites l'association entre les attributs de InformationClient et les attributs du ViewModel à l'endroit mentionné par le commentaire.