开发一个带UI的库
创建两(或三个)个项目
一个是asp.net core web mvc项目(也可打包,发布到nuget上,供他人使用):
1、就是带UI的库,因为作为一个库项目,所以这个项目的Program.cs和Starup.cs就没有作用了,其实只留 下Controller和Views就好了
2、wwwroot中的前端资源(js,css)还是需要存在的(只保留项目中View用到的前端资源文件就可以),再把view中引用的前端资源的路径加上wwwroot
3、同时项目“输出类型”改为“类库”,接下来,把views中的文件,wwwroot中的文件的属性从“内容”改成“嵌入的资源”;
4、同时对Controller中的Action使用对应的HttpGet,HttpPost,HttpPut,HttpDelete等请求谓词和准确的请求url
另一个项目是API或Web MVC项目,只需要Startup.cs中引入
1 public void ConfigureServices(IServiceCollection services)
2 {
3 services.AddControllersWithViews().AddRazorRuntimeCompilation(option =>
4 {
5 option.FileProviders.Add(new EmbeddedFileProvider(typeof(EmbeddedResourcesPage.Controllers.PageController).GetTypeInfo().Assembly));
6 });
7 }
8 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
9 {
10 app.UseStaticFiles(new StaticFileOptions
11 {
12 FileProvider = new EmbeddedFileProvider(typeof(EmbeddedResourcesPage.Controllers.PageController).GetTypeInfo().Assembly)
13 });
14 ……
15 }