From 299b4282a760349306dabed2bbeae63882609be2 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 1 Apr 2026 15:09:28 +0800 Subject: [PATCH] fix: Adjust route constraint to handle URL generation without HttpContext and update route order for Razor Pages --- .../AspNetCore/Mvc/Localization/AbpCultureRouteConstraint.cs | 5 +++-- .../Mvc/Localization/AbpCultureRoutePagesConvention.cs | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpCultureRouteConstraint.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpCultureRouteConstraint.cs index 34887f048d..fe12bac3ff 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpCultureRouteConstraint.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpCultureRouteConstraint.cs @@ -23,11 +23,12 @@ public class AbpCultureRouteConstraint : IRouteConstraint } var languages = httpContext?.RequestServices - .GetRequiredService>().Value.Languages; + .GetService>()?.Value.Languages; if (languages == null || languages.Count == 0) { - return false; + // During URL generation, HttpContext or services may not be available. + return routeDirection == RouteDirection.UrlGeneration; } return languages.Any(l => diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpCultureRoutePagesConvention.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpCultureRoutePagesConvention.cs index c8932720bc..9410562f33 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpCultureRoutePagesConvention.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpCultureRoutePagesConvention.cs @@ -34,7 +34,7 @@ public class AbpCultureRoutePagesConvention : IPageRouteModelConvention AttributeRouteModel = new AttributeRouteModel { Template = AttributeRouteModel.CombineTemplates(CultureRouteTemplate, originalTemplate), - Order = 1 + Order = -1 } }); }