Je travaille sur un site Web et j'essaie simplement de comprendre la structure générale. J'ai une base de données en arrière-plan que j'accède en utilisant le "Repository Pattern". J'ai le code ci-dessous dans mon UserRepository Classe:Modèle de référentiel - Objet de validation et message de retour
public bool IsValid(User user)
{
if (_context.Users.Any(c => c.EmailAddress == user.EmailAddress))
{
Message = "Email address already in use";
return false;
}
return true;
}
Et qui est mis en œuvre ici
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(User user)
{
if (ModelState.IsValid)
{
var context = new Context("DatabaseContext");
var userRepo = new UserRepository(context);
if (userRepo.IsValid(user))
{
userRepo.Add(user);
// return to different view
}
else
{
// display userRepo.Message on page
return View(user);
}
}
return View(user);
}
Mon problème est que je ne pense pas que je vais dans le bit « message » correctement , mais je ne trouve rien en ligne pour m'aider (en particulier autour du référentiel). Je pense Je devrais changer le type de retour de IsValid à quelque chose comme un résultat (comme je l'ai vu avec les boîtes de dialogue), mais encore une fois, je ne suis pas sûr.
Toute aide serait grandement appréciée.
Merci.
À l'heure actuelle, vous avez un critère de validation, donc un booléen aurait du sens. Si les choses deviennent beaucoup plus compliquées, pensez à renvoyer le message (une chaîne) sur une erreur, puis vérifiez si elle est nulle (en cas de succès). Ou si nécessaire, vous pouvez aller aussi loin que ce que le ModelState fait dans le contrôleur. – robjam