.NetCore 下开发独立的(RPL)含有界面的组件包 (三)构建界面

时间:2021-09-14 08:36:48

.NetCore 下开发独立的(RPL)含有界面的组件包 (一)准备工作

.NetCore 下开发独立的(RPL)含有界面的组件包 (二)扩展中间件及服 务

.NetCore 下开发独立的(RPL)含有界面的组件包 (三)构建界面

.NetCore 下开发独立的(RPL)含有界面的组件包 (四)授权过滤

.NetCore 下开发独立的(RPL)含有界面的组件包 (五)授权过滤参数处 理

.NetCore 下开发独立的(RPL)含有界面的组件包 (六)实现业务功能

在前面的基础上我们来添加引入我们的视图以及资源文件,Resource 用来放我们的资源文件 js css等,Views用来放我们的视图cshtml页面,这里需要注意的是 这个采用razorview来编译的视图文件夹的名称必须为 Views

.NetCore 下开发独立的(RPL)含有界面的组件包 (三)构建界面

我准备了下载了一套后台管理的界面并添加进去了

.NetCore 下开发独立的(RPL)含有界面的组件包 (三)构建界面

这个时候就需要用到我们的DotNetCliTool工具了

使用命令操作 生成 视图对应的页面类

dotnet razorpagegenerator IdentityServer4.AdminChina

.NetCore 下开发独立的(RPL)含有界面的组件包 (三)构建界面

这个类是根据cshtml页面内容生成的 ,在前面的基础上,来改一改中间件的处理方式,修改下中间件的方法,来处理HomeIndex页面类视图

 public async Task Invoke(HttpContext context)
{
string routeUrl = context.Request.Path;
if (routeUrl.Equals(_options.PathRoute))
{
var view = new HomeIndex();
await view.ExecuteAsync(context); }
else
{
await _next(context);
}
}

当然这样做还是不行的,资源文件的路径问题还没有处理,这里需要对嵌入的资源文件处理,这里需扩展的UseAdminChina做一些处理,关于文件路径这块可以参考UseStaticFiles、FileServerExtensions相关

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/file-providers?view=aspnetcore-2.1

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-2.1&tabs=aspnetcore2x

 var dllPath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "IdentityServer4.AdminChina.dll");
app.UseFileServer(new FileServerOptions
{
FileProvider = new ManifestEmbeddedFileProvider(Assembly.LoadFrom(dllPath), "Resource"),
});

因为前面我已经配置过类库的工程文件了,所以这里就不说了

直接运行看效果

.NetCore 下开发独立的(RPL)含有界面的组件包 (三)构建界面

到这里我们的一个页面就基本成型了,类库中的资源文件也已经加载出来了小图标、js效果等,当然这还是不够,我们还需要更多的功能,比如添加自定义的权限过滤,就想hangfire一样,后面继续来说