diff --git a/src/AbpDesk/AbpDesk.Web.Mvc/Pages/App/Tickets/Index.cshtml.cs b/src/AbpDesk/AbpDesk.Web.Mvc/Pages/App/Tickets/Index.cshtml.cs
index 00ee5c14d9..3953df33fc 100644
--- a/src/AbpDesk/AbpDesk.Web.Mvc/Pages/App/Tickets/Index.cshtml.cs
+++ b/src/AbpDesk/AbpDesk.Web.Mvc/Pages/App/Tickets/Index.cshtml.cs
@@ -19,7 +19,6 @@ namespace AbpDesk.Web.Mvc.Pages.App.Tickets
public async Task OnGetAsync(GetAllTicketsInput input)
{
- var uow = CurrentUnitOfWork;
var result = await _ticketAppService.GetAll(input);
Tickets = result.Items;
}
diff --git a/src/AbpDesk/AbpDesk.Web.Mvc/Pages/Index.cshtml.cs b/src/AbpDesk/AbpDesk.Web.Mvc/Pages/Index.cshtml.cs
index c289ecbc88..8068ab311c 100644
--- a/src/AbpDesk/AbpDesk.Web.Mvc/Pages/Index.cshtml.cs
+++ b/src/AbpDesk/AbpDesk.Web.Mvc/Pages/Index.cshtml.cs
@@ -1,8 +1,8 @@
-using Microsoft.AspNetCore.Mvc.RazorPages;
+using Volo.Abp.AspNetCore.Mvc.RazorPages;
namespace AbpDesk.Web.Mvc.Pages
{
- public class IndexModel : PageModel
+ public class IndexModel : AbpPageModel
{
public void OnGet()
{
diff --git a/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj b/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj
index 0eada12839..9de9226814 100644
--- a/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj
+++ b/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj
@@ -23,4 +23,8 @@
+
+
+
+
diff --git a/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/RazorPages/AbpPageModel.cs b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/RazorPages/AbpPageModel.cs
index eec6fcf081..dd27354cd1 100644
--- a/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/RazorPages/AbpPageModel.cs
+++ b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/RazorPages/AbpPageModel.cs
@@ -2,13 +2,14 @@
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
+using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
namespace Volo.Abp.AspNetCore.Mvc.RazorPages
{
- public abstract class AbpPageModel : PageModel
+ public abstract class AbpPageModel : PageModel, ITransientDependency //TODO: Register PageModels by convention, instead of using ITransientDependency
{
public IUnitOfWorkManager UnitOfWorkManager { get; set; }
diff --git a/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/RazorPages/ServiceBasedPageModelActivatorProvider.cs b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/RazorPages/ServiceBasedPageModelActivatorProvider.cs
new file mode 100644
index 0000000000..89e0bd12ff
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/RazorPages/ServiceBasedPageModelActivatorProvider.cs
@@ -0,0 +1,23 @@
+using System;
+using JetBrains.Annotations;
+using Microsoft.AspNetCore.Mvc.RazorPages;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.DependencyInjection;
+
+namespace Volo.Abp.AspNetCore.Mvc.RazorPages
+{
+ [Dependency(ReplaceServices = true)]
+ public class ServiceBasedPageModelActivatorProvider : IPageModelActivatorProvider, ITransientDependency
+ {
+ public Func CreateActivator([NotNull] CompiledPageActionDescriptor descriptor)
+ {
+ Check.NotNull(descriptor, nameof(descriptor));
+ return context => context.HttpContext.RequestServices.GetRequiredService(descriptor.ModelTypeInfo);
+ }
+
+ public Action CreateReleaser([NotNull] CompiledPageActionDescriptor descriptor)
+ {
+ return null;
+ }
+ }
+}
diff --git a/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml.cs b/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml.cs
index 1557445d6b..4997f911f7 100644
--- a/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml.cs
+++ b/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml.cs
@@ -1,8 +1,8 @@
-using Microsoft.AspNetCore.Mvc.RazorPages;
+using Volo.Abp.AspNetCore.Mvc.RazorPages;
namespace Volo.Abp.Identity.Web.Pages.Identity.Users
{
- public class IndexModel : PageModel
+ public class IndexModel : AbpPageModel
{
public void OnGet()
{