Fork me on GitHub

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

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

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

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

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

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

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

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

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

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

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

dotnet razorpagegenerator IdentityServer4.AdminChina

这个类是根据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"),
            });

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

直接运行看效果

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

posted @ 2018-12-28 18:37  龙码精神  阅读(821)  评论(1编辑  收藏  举报