Sök…


Omdirigera till anpassad felsida

ASP.NET Core tillhandahåller statuskodens sidor , som stöder flera olika förlängningsmetoder, men vi är intressanta i UseStatusCodePages och UseStatusCodePagesWithRedirects :

  • UseStatusCodePages lägger till en StatusCodePages mellanprogram med de givna alternativen som söker efter svar med statuskoder mellan 400 och 599 som inte har ett organ. Exempel på användning för omdirigering:

    app.UseStatusCodePages(async context => {
      //context.HttpContext.Response.StatusCode contains the status code
    
      // your redirect logic
    
    });
    
  • UseStatusCodePagesWithRedirects lägger till en StatusCodePages mellanprogram till pipeline. Anger att svar ska hanteras genom att omdirigera med den angivna plats-URL-mallen. Detta kan inkludera en '{0}' platshållare för statuskoden. Webbadresser som börjar med '~' kommer att förlägga PathBase, där någon annan URL kommer att användas som den är. Till exempel kommer följande att omdirigera till ~ / error / <error_code> (till exempel ~ / error / 403 för 403-fel):

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

Global undantagshantering i ASP.NET Core

UseExceptionHandler kan användas för att hantera undantag globalt. Du kan få alla detaljer om undantagsobjekt som Stack Trace, Inner exception och andra. Och sedan kan du visa dem på skärmen. Du kan enkelt implementera så här.

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);
      }
    });
 }
);

Du måste lägga in detta i konfigurering () av filen startup.cs.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow