Mam niestandardowe błędy włączone w webconfig i przekierowujące do "/ Error/Trouble". Działa to zgodnie z założeniami. Elmah rejestruje błąd. Wyświetlany jest również widok błędu.asp.net mvc 3 pobierz wyjątek
Problem polega na tym, że chcę sprawdzić zgłoszony błąd w akcji dotyczącej problemu z moim kontrolerem błędów. Kiedy pojawia się błąd, w jaki sposób uzyskujesz do niego dostęp po przekierowaniu przez MVC do niestandardowej procedury obsługi błędów?
Rzucam wyjątek, jeśli CurrentUser jest zerowy:
if (CurrentUser == null)
{
var message = String.Format("{0} is not known. Please contact your administrator.", context.HttpContext.User.Identity.Name);
throw new Exception(message, new Exception("Inner Exception"));
}
Chcę być w stanie uzyskać dostęp do tego w moim obsługi niestandardowych błędów („Error/Trouble”). Jak uzyskać dostęp do wyjątku?
Oto moja akcja kłopot:
public ActionResult Trouble()
{
return View("Error");
}
Oto mój widok:
@model System.Web.Mvc.HandleErrorInfo
<h2>
Sorry, an error occurred while processing your request.
</h2>
@if (Model != null)
{
<p>@Model.Exception.Message</p>
<p>@Model.Exception.GetType().Name<br />
thrown in @Model.ControllerName @Model.ActionName</p>
<p>Error Details:</p>
<p>@Model.Exception.Message</p>
}
System.Web.Mvc.HandleErrorInfo jest modelem dla mnie problemem i jest ona pusta. Dzięki za pomoc.
Chcesz to zobaczyć podczas debugowania? – mattytommo
nie podczas debugowania. Chcę, aby akcja Trouble sprawdzała zgłaszany błąd i wyświetlała komunikat o błędzie, aby wyświetlić użytkownikowi końcowemu. –