From dbdd09d61e03fe23553d2905cb841ccaa08d2e4b Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Fri, 2 Apr 2021 15:14:30 +0200 Subject: [PATCH] hm --- zero.Core/Constants.cs | 7 +++++++ zero.Core/Options/RoutingOptions.cs | 6 ++++++ zero.Core/Routing/ZeroRoutesTransformer.cs | 1 + zero.Web/ZeroApplicationBuilderExtensions.cs | 9 ++++++++- 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/zero.Core/Constants.cs b/zero.Core/Constants.cs index b8cc2052..474e2059 100644 --- a/zero.Core/Constants.cs +++ b/zero.Core/Constants.cs @@ -78,5 +78,12 @@ public const string FolderAlias = "zero.folder"; public const string DefaultRootPageTypeAlias = "root"; } + + public static class Routing + { + public const string InternalRoutePrefix = "/__zero/"; + + public const string ErrorRoute = InternalRoutePrefix + "error"; + } } } diff --git a/zero.Core/Options/RoutingOptions.cs b/zero.Core/Options/RoutingOptions.cs index 06decfb5..03b2e099 100644 --- a/zero.Core/Options/RoutingOptions.cs +++ b/zero.Core/Options/RoutingOptions.cs @@ -12,6 +12,7 @@ namespace zero.Core.Options DefaultEndpoint = new("ZeroFrontend", "Index"); EndpointResolvers = new(); PageResolvers = new(); + ErrorReexecutionPath = "/error"; } @@ -26,5 +27,10 @@ namespace zero.Core.Options /// /// public RoutingPageResolverOptions PageResolvers { get; set; } + + /// + /// + /// + public string ErrorReexecutionPath { get; set; } } } diff --git a/zero.Core/Routing/ZeroRoutesTransformer.cs b/zero.Core/Routing/ZeroRoutesTransformer.cs index cca82363..68eac401 100644 --- a/zero.Core/Routing/ZeroRoutesTransformer.cs +++ b/zero.Core/Routing/ZeroRoutesTransformer.cs @@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Routing; using Microsoft.AspNetCore.Routing; +using System; using System.Threading.Tasks; namespace zero.Core.Routing diff --git a/zero.Web/ZeroApplicationBuilderExtensions.cs b/zero.Web/ZeroApplicationBuilderExtensions.cs index d4d7cb86..0f7f0a3c 100644 --- a/zero.Web/ZeroApplicationBuilderExtensions.cs +++ b/zero.Web/ZeroApplicationBuilderExtensions.cs @@ -1,5 +1,7 @@ using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; +using System; +using zero.Core; using zero.Core.Extensions; using zero.Core.Options; using zero.Core.Routing; @@ -15,6 +17,11 @@ namespace zero.Web string path = options.BackofficePath.EnsureStartsWith('/').TrimEnd('/'); + if (!options.Routing.ErrorReexecutionPath.IsNullOrEmpty()) + { + app.UseStatusCodePagesWithReExecute(options.Routing.ErrorReexecutionPath.EnsureStartsWith('/'), "?statusCode={0}"); + } + app.UseMiddleware(); app.UseStaticFiles(); @@ -61,7 +68,7 @@ namespace zero.Web { return app.UseEndpoints(endpoints => { - endpoints.MapDynamicControllerRoute("{**url}"); + endpoints.MapDynamicControllerRoute("{**url}", state: null, order: 10); }); } }