From b448b63bf809d8449542677e44dfbef75cca2fcc Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 6 Feb 2025 15:40:50 +0800 Subject: [PATCH] Add RedirectUrlResolver --- modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs | 15 +++++++++++++++ .../Pages/Documents/Project/Index.cshtml.cs | 6 +++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs b/modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs index 702536c31d..e06fa94bc2 100644 --- a/modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs +++ b/modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs @@ -39,6 +39,21 @@ namespace Volo.Docs public bool EnableEnlargeImage { get; set; } = true; + public Func RedirectUrlResolver { get; set; } = url => + { + if (!url.EndsWith("/Index", StringComparison.OrdinalIgnoreCase)) + { + return null; + + } + return url.Substring(0, url.LastIndexOf("/Index", StringComparison.OrdinalIgnoreCase)); + }; + + public string? GetRedirectUrlIfNeeded(string url) + { + return RedirectUrlResolver.Invoke(url); + } + private string GetFormattedRoutePrefix() { if (string.IsNullOrWhiteSpace(_routePrefix)) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index c2440c9b5f..2bb7c82c21 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -131,10 +131,10 @@ namespace Volo.Docs.Pages.Documents.Project return Redirect(decodedUrl); } - if(displayUrl.EndsWith("/Index", StringComparison.OrdinalIgnoreCase)) + var redirectUrl = _uiOptions.GetRedirectUrlIfNeeded(displayUrl); + if (redirectUrl != null) { - displayUrl = displayUrl.Substring(0, displayUrl.LastIndexOf("/Index", StringComparison.OrdinalIgnoreCase)); - return RedirectPermanent(displayUrl); + return RedirectPermanent(redirectUrl); } return await SetPageAsync();