diff --git a/zero.Core/Rendering/RazorRenderer.cs b/zero.Core/Rendering/RazorRenderer.cs
index 34f87391..98b08fa1 100644
--- a/zero.Core/Rendering/RazorRenderer.cs
+++ b/zero.Core/Rendering/RazorRenderer.cs
@@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Abstractions;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.AspNetCore.Mvc.Razor;
+using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewEngines;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
@@ -125,29 +126,20 @@ public class RazorRenderer : IRazorRenderer, IDisposable
///
/// Renders a razor page to a string
///
- public async Task PageAsync(string view, object model = null)
+ public async Task PageAsync(T model) where T : PageModel
{
- return await PageAsync(BuildActionContext(), view, model);
- }
-
-
- ///
- /// Renders a razor page to a string
- ///
- public async Task PageAsync(ActionContext context, string page, object model = null)
- {
- IRazorPage pageResult = FindPage(context, page);
+ IRazorPage pageResult = FindPage(model.PageContext, model.PageContext.ActionDescriptor.RelativePath);
using StringWriter stringWriter = new();
RazorView view = new RazorView(ViewEngine, PageActivator, new List(), pageResult, HtmlEncoder.Default, new DiagnosticListener("ViewRenderService"));
- ViewContext viewContext = BuildViewContext(context, stringWriter, view);
- viewContext.RouteData = context.RouteData;
- viewContext.ViewData.Model = model;
+ ViewContext viewContext = BuildViewContext(model.PageContext, stringWriter, view);
+ viewContext.RouteData = model.RouteData;
+ viewContext.ViewData = model.ViewData;
Microsoft.AspNetCore.Mvc.RazorPages.Page razorPage = (Microsoft.AspNetCore.Mvc.RazorPages.Page)pageResult;
- razorPage.PageContext = new Microsoft.AspNetCore.Mvc.RazorPages.PageContext(viewContext);
+ razorPage.PageContext = model.PageContext;
razorPage.ViewContext = viewContext;
PageActivator.Activate(razorPage, viewContext);
@@ -339,12 +331,7 @@ public interface IRazorRenderer
///
/// Renders a razor page to a string
///
- Task PageAsync(string view, object model = null);
-
- ///
- /// Renders a razor page to a string
- ///
- Task PageAsync(ActionContext context, string page, object model = null);
+ Task PageAsync(T model) where T : PageModel;
///
/// Renders a razor view to a string