在前面的基础上我们来添加引入我们的视图以及资源文件,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一样,后面继续来说
原文地址:https://www.cnblogs.com/liyouming/p/10192269.html