Browse Source

Add RedirectUrlResolver

pull/22088/head
liangshiwei 1 year ago
parent
commit
b448b63bf8
  1. 15
      modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs
  2. 6
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

15
modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs

@ -39,6 +39,21 @@ namespace Volo.Docs
public bool EnableEnlargeImage { get; set; } = true;
public Func<string, string?> 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))

6
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();

Loading…
Cancel
Save