在GitHub上有個項目,原本是做爲本身研究學習.net core的Demo,沒想到不少同窗在看,還給了不少星,因此以爲應該升成3.0,整理一下,寫成博分享給學習.net core的同窗們。css
項目名稱:Asp.NetCoreExperiment前端
項目地址:https://github.com/axzxs2001/Asp.NetCoreExperimentgit
當你想用asp.net core作一個三方庫,不但有api實現功能,還但願能用UI來展示或設置你的功能時,這個blog或許對你有用。github
用Demo說話,源碼GiuHub庫:https://github.com/axzxs2001/Asp.NetCoreExperiment/tree/master/Asp.NetCoreExperiment/EmbeddedResourcesweb
建立兩(或三個)個項目api
一個是asp.net core web mvc項目(也可打包,發佈到nuget上,供他人使用):mvc
一、就是帶UI的庫,由於做爲一個庫項目,因此這個項目的Program.cs和Starup.cs就沒有做用了,其實只留 下Controller和Views就行了app
二、wwwroot中的前端資源(js,css)仍是須要存在的(只保留項目中View用到的前端資源文件就能夠),再把view中引用的前端資源的路徑加上wwwrootasp.net
三、同時項目「輸出類型」改成「類庫」,接下來,把views中的文件,wwwroot中的文件的屬性從「內容」改爲「嵌入的資源」;ide
四、同時對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 }