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:
//...
[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; }
//...
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.
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
:
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`
}
};
//...
Cette portion est à compléter!
Faites l'association entre les attributs de InformationClient
et les attributs du ViewModel
à l'endroit mentionné par le commentaire.