5 votes

Meilleure pratique pour tenter de modifier un élément qui n'existe pas ?

J'ai actuellement la fonction de ce contrôleur :

public ViewResult Edit(int id)
{
    //get user from id
    var user = _adminRepository.GetUser(id);

    return View(user);
}

Cela me donne actuellement une erreur sur ma page d'affichage si je tente de modifier un élément avec un id de 100, alors qu'il n'y a pas d'utilisateur avec un id de 100 dans la base de données.

Quelle est la meilleure pratique pour gérer cela ? Les renvoyer vers une page de création ou afficher un message d'erreur convivial ? Cette fonctionnalité de redirection doit-elle être intégrée à la fonction de contrôleur ?

6voto

Adrian Grigore Points 15993

IMO il devrait soulever une erreur 404. Après tout, l'utilisateur demande une ressource qui n'existe pas, un peu comme une page web ordinaire.

5voto

Jason Towne Points 6279

J'afficherais un message d'erreur convivial leur indiquant que l'utilisateur a été supprimé et je leur fournirais un lien vers la page Créer un utilisateur s'ils veulent recréer l'utilisateur.

Je suis contre le fait de rediriger l'utilisateur là où il n'avait pas l'intention d'aller à l'origine, donc le rediriger automatiquement vers l'écran Créer un utilisateur alors qu'il s'attendait à aller vers l'écran Modifier un utilisateur (je suppose qu'ils sont séparés) n'est pas la solution la plus conviviale.

1voto

Shekhar_Pro Points 10465

Je pense que vous devriez les rediriger vers Créer une page avec une information supplémentaire sur la raison de leur redirection.

1voto

michaelalm Points 120

Sur la base de votre réponse à @RPM1984, je pense que votre problème se situe au niveau de l'action de mise à jour puisque vous avez déjà ouvert la vue. Je vous suggère de rediriger vers une page d'erreur conviviale disant "L'utilisateur que vous essayez de mettre à jour n'existe pas" lorsque vous cliquez sur enregistrer puis découvrez que l'utilisateur n'est plus là. Avec un lien pour revenir à votre grille et voir le dernier ensemble d'utilisateurs.

Cette page serait également utile pour certains utilisateurs qui pourraient essayer d'accéder directement à l'url au lieu d'utiliser votre grille

es decir

certains peuvent taper

http://mysite.com/users/edit/215215132

où 215215132 est votre ID utilisateur.

Je suppose que c'est comme ça que vous faites.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X