From a5bf8ebe9ebbdab0ece73936408a3298fab2c957 Mon Sep 17 00:00:00 2001 From: enisn Date: Thu, 4 Feb 2021 11:24:41 +0300 Subject: [PATCH] CmsKit - Alternative way to handle pages --- .../CmsKitPublicWebModule.cs | 4 --- .../Controllers/PageController.cs | 34 +++++++++++++++++++ .../Pages/CmsKit/Pages/Index.cshtml | 13 ------- .../Pages/CmsKit/Pages/Index.cshtml.cs | 34 ------------------- .../Views/Page/Index.cshtml | 9 +++++ 5 files changed, 43 insertions(+), 51 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/PageController.cs delete mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml delete mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Web/Views/Page/Index.cshtml diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs index 953102aa79..b5c7b9bb3f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs @@ -61,10 +61,6 @@ namespace Volo.CmsKit.Public.Web { Configure(options => { - if (GlobalFeatureManager.Instance.IsEnabled()) - { - options.Conventions.AddPageRoute("/CmsKit/Pages/Index", @"{*pageUrl:minlength(1)}"); - } }); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/PageController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/PageController.cs new file mode 100644 index 0000000000..1eed5857f1 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/PageController.cs @@ -0,0 +1,34 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.ActionConstraints; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.CmsKit.Public.Pages; + +namespace Volo.CmsKit.Public.Web.Controllers +{ + public class PageController : CmsKitPublicControllerBase + { + protected IPageAppService PageAppService { get; } + + public PageController(IPageAppService pageAppService) + { + PageAppService = pageAppService; + } + + [HttpGet("/{*url}", Order = int.MaxValue)] + public async Task Index(string url) + { + var page = await PageAppService.FindByUrlAsync(url); + + if (page == null) + { + return NotFound(); + } + + return View("~/Views/Page/Index.cshtml", page); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml deleted file mode 100644 index 73c7637b01..0000000000 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml +++ /dev/null @@ -1,13 +0,0 @@ -@page "{*pageUrl}" -@using Microsoft.AspNetCore.Mvc.Localization -@using Volo.CmsKit.Localization -@using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Pages -@model Volo.CmsKit.Public.Web.Pages.CmsKit.Pages.IndexModel -@inject IHtmlLocalizer L - -@await Component.InvokeAsync(typeof(DefaultPageViewComponent), - new - { - pageId = Model.Page.Id, - title = Model.Page.Title - }) \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml.cs deleted file mode 100644 index 5443608845..0000000000 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; -using Volo.CmsKit.Public.Pages; -using Volo.CmsKit.Web.Pages; - -namespace Volo.CmsKit.Public.Web.Pages.CmsKit.Pages -{ - public class IndexModel : CommonPageModel - { - [BindProperty(SupportsGet = true)] - public string PageUrl { get; set; } - - protected readonly IPageAppService PageAppService; - - public PageDto Page; - - public IndexModel(IPageAppService pageAppService) - { - PageAppService = pageAppService; - } - - public async Task OnGetAsync() - { - Page = await PageAppService.FindByUrlAsync(PageUrl); - - if (Page == null) - { - return NotFound(); - } - - return Page(); - } - } -} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Views/Page/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Views/Page/Index.cshtml new file mode 100644 index 0000000000..de094041e4 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Views/Page/Index.cshtml @@ -0,0 +1,9 @@ +@model Volo.CmsKit.Public.Pages.PageDto + +@using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Pages + +@await Component.InvokeAsync(typeof(DefaultPageViewComponent), new +{ + pageId = Model.Id, + title = Model.Title +}) \ No newline at end of file