Zoeken…


Omleiden naar aangepaste foutpagina

ASP.NET Core biedt de middleware van de statuscodepagina's , die verschillende extensiemethoden ondersteunt, maar we zijn interessant in UseStatusCodePages en UseStatusCodePagesWithRedirects :

  • UseStatusCodePages voegt een StatusCodePages-middleware toe met de gegeven opties die controleert op reacties met statuscodes tussen 400 en 599 die geen body hebben. Voorbeeld van gebruik voor omleiding:

    app.UseStatusCodePages(async context => {
      //context.HttpContext.Response.StatusCode contains the status code
    
      // your redirect logic
    
    });
    
  • UseStatusCodePagesWithRedirects voegt een StatusCodePages middleware toe aan de pijplijn. Geeft aan dat reacties moeten worden afgehandeld door om te leiden met de gegeven locatie-URL-sjabloon. Dit kan een tijdelijke aanduiding '{0}' voor de statuscode zijn. URL's die beginnen met '~' hebben PathBase voorafgegaan, waarbij elke andere URL zal worden gebruikt zoals deze is. Het volgende zal bijvoorbeeld omleiden naar ~ / fouten / <foutcode> (bijvoorbeeld ~ / fouten / 403 voor 403-fout):

    app.UseStatusCodePagesWithRedirects("~/errors/{0}");
    

Wereldwijde uitzonderingsbehandeling in ASP.NET Core

UseExceptionHandler kan worden gebruikt om uitzonderingen wereldwijd af te handelen. U kunt alle details van uitzonderingsobjecten krijgen, zoals Stack Trace, Inner exception en anderen. En dan kun je ze op het scherm tonen. U kunt eenvoudig zo implementeren.

app.UseExceptionHandler(
 options => {
    options.Run(
    async context =>
    {
      context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
      context.Response.ContentType = "text/html";
      var ex = context.Features.Get<IExceptionHandlerFeature>();
      if (ex != null)
      {
        var err = $"<h1>Error: {ex.Error.Message}</h1>{ex.Error.StackTrace }";
        await context.Response.WriteAsync(err).ConfigureAwait(false);
      }
    });
 }
);

U moet dit in configure () van het startup.cs-bestand plaatsen.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow