2016-09-21 7 views
1

Wenn ich customErrors in meiner Web.config verwende, wie kann ich irgendeinen Server Code benutzen, bevor ich diese Seite anrufe?Kann ich serverseitigen Code mit customErrors aufrufen?

Muss ich in meinen catch-Anweisungen behandeln, bevor Sie den Fehler aufrufen? Gibt es eine andere Option?

<customErrors mode="On" defaultRedirect="~/Views/Shared/MyPageError.cshtml" /> 

In meinem Fall möchte ich den Benutzer von der Website protokollieren, bevor es meine Fehlerseite trifft.

Antwort

0

Ich habe am Ende eine AJAX-Get-Methode hinzugefügt, um meinen Server-Code aufzurufen.

0

Sie Filter in der Anwendung erstellen können, die

Ihre Fehler zum Beispiel handhaben können Sie
public class FilterConfig 
    { 
     public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
     { 
      filters.Add(new ErrorHandler()); 
     } 

     public class ErrorHandler : HandleErrorAttribute 
     { 
      public override void OnException(ExceptionContext filterContext) 
      { 
       base.OnException(filterContext); 
       SendEmail(filterContext.Exception.Message); 
      } 
     } 
    } 

Register in Global.asax.cs

FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 

Erwähnung dieses auf Controller

[ErrorHandler] 

kann auch im Fehlerfall

angeben
[ErrorHandler(View = "")] 
+0

Also würde ich customErrors in diesem Fall deaktivieren und den ErrorHandler-Filter für alle meine Controller implementieren? – PrivateJoker

+0

Ich habe versucht [ErrorHandler (View = "~/Views/Shared/MyPageError.cshtml")] aber es wird diese Seite nicht angezeigt. Es wirft nur eine hässliche Fehlermeldung auf den Bildschirm. – PrivateJoker

+0

@JDS haben Sie es in Global.asax.cs registriert und wenn ja als verwenden [Handle (View = "")] [Fehlerbehandler (View = "")] –

Verwandte Themen