首页 > 解决方案 > 为自定义 ApplicationService 创建动态 JavaScript 代理

问题描述

我已阅读 ABP 文档。

这是我基于 ABP 框架的新项目的解决方案架构。首先我想问一下这个设计有什么问题吗?

在此处输入图像描述

我已经IocManager在我的Holitera.ApplicationModule. 所以现在我可以从 MVC 控制器调用我的应用服务。RegionAppService是我的新 AppService 在这里。

这是注册:

在此处输入图像描述

我的RegionAppService班级:

public class RegionAppService : AsyncCrudAppService<Region, RegionDto,int>, IRegionAppService
{
    private readonly IRepository<Region> _regionRepository;
    public RegionAppService(IRepository<Region> regionRepository) :
        base(regionRepository)
    {
        CreatePermissionName = "CreateRegionPermission";
        _regionRepository = regionRepository;
    }
}

现在我想创建一个 CRUD Razor 页面,就像默认模板中的角色视图一样。但我无法将我的自定义注册RegionAppService到 JavaScript 代理服务。

我需要一个动态的 Web API 模块来做到这一点吗?那有必要吗?如果是,那么 Role、User、Customer、Account 服务是如何注册到动态 JS 代理的?我找不到那个配置。据我所知,默认 MVC 模板中没有动态 Web API 模块的配置?所以我还没有 API 模块。

稍后我将需要一个动态 JavaScript 模块,但不是现在。首先,我只想处理这个。

顺便问一下,动态 AJAX 调用方法和动态 Web API 模块有什么区别?它们是相同的还是不同的,如何?

谢谢 :)

标签: c#asp.net-coreaspnetboilerplate

解决方案


这个设计有什么问题吗?

EntityDomainService进入核心项目。DtoAppService进入 Application 项目。
您可以阅读有关NLayer 架构的信息。

这是发现其他服务的方式和正确的方法。

我需要动态 web api 模块来做到这一点吗?那有必要吗?

不。

Role、User、Customer、Account 服务如何注册到动态 js 代理?我找不到那个配置。据我所知,默认 mvc 模板中没有动态 api 模块的配置?

它在YourProjectNameWebCoreModule中完成。您可以为其他程序集创建控制器:

Configuration.Modules.AbpAspNetCore()
    .CreateControllersForAppServices(
        typeof(RegionAppService).GetAssembly()
    );

推荐阅读