Y a-t-il un moyen intégré ou approprié de gérer les erreurs dans ASP.NET MVC 3?
C'est ce que je veux faire:
J'ai trouvé les manières suivantes:
Comment gérer cela la manière appropriée?
Si la solution est similaire ou est comme n ° 1 dans la liste ci-dessus, j'utilise Ninject et je n'ai pas créé de classe de base. Comment faire ça?
Pour la manipulation des erreurs mondiales
[.____] Tout ce que vous avez à faire est de changer le mode CustomErrors = "On" dans web.config Page
L'erreur sera affichée via ERROR.CSHTML réside dans le dossier partagé.
Assurez-vous que la mise en page ERROR.CSHTML n'est pas NULL.
[.____] [ce devrait être quelque chose comme: @ {mise en page = "~/vues/partagé/_layout.cshtml"; }
[.____] ou supprimer la mise en page = bloc de code null]
[.____] un balisage d'échantillon pour erreur.cshtml: -
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
@model System.Web.Mvc.HandleErrorInfo
<!DOCTYPE html>
<html>
<head>
<title>Error</title>
</head>
<body>
<h2>
Sorry, an error occurred while processing your request.
</h2>
<p>Controller Name: @Model.ControllerName</p>
<p>Action Name : @Model.ActionName</p>
<p>Message: @Model.Exception.Message</p>
</body>
</html>
Pour une manipulation d'erreur spécifique
[.____] Ajouter un attribut guérisseur à une action spécifique dans la classe de contrôleur. Fournissez "vue" et "exceptype" pour cette erreur spécifique.
[.____] Un échantillon de gestionnaire d'exception notamplité:
public class MyController: Controller
{
[HandleError(View = "NotImplErrorView", ExceptionType=typeof(NotImplementedException))]
public ActionResult Index()
{
throw new NotImplementedException("This method is not implemented.");
return View();
}
}
La façon la plus simple que je pense que vous puissiez faire cela consiste à utiliser la bibliothèque Elmah.
Jetez un coup d'œil à ceci: http://code.google.com/p/elmah/wiki/mvc et ceci http://www.haselman.com/blog/elmaherrorloggingmodulesandhandlersforaspnetandmvcto. ASPX
Je pense que le moyen le plus simple consiste à utiliser Excepthandler Attribut car il est prêt à utiliser à tout moment, vous créez un nouveau projet ASP.NET MVC 3. Vous pouvez toujours configurer Web.config pour utiliser une page d'erreur personnalisée et des exceptions de traitement de la méthode globale Application_Error comme d'habitude, mais lorsqu'une exception se produit, l'URL n'est pas affichée aussi bien que la nouvelle voie du MVC 3.