asp.net Core3.0區(qū)域與路由配置的方法
在ASP.NET Core 3.0中路由配置和2.0不一樣了
一、MVC 服務注冊
ASP.NET Core 3.0 添加了用于注冊內(nèi)部的 MVC 方案的新選項Startup.ConfigureServices。
三個新的頂級擴展方法與 MVC 方案上IServiceCollection可用。 模板使用這些新方法,而不是UseMvc。 但是,AddMvc繼續(xù)像它已在以前的版本。
下面的示例將添加對控制器和與 API 相關(guān)的功能,但不是視圖或頁面的支持。 API 模板使用此代碼:
public void ConfigureServices(IServiceCollection services) { services.AddControllers(); }
下面的示例將添加對控制器、 與 API 相關(guān)的功能,和視圖,但不是頁面的支持。 Web 應用程序 (MVC) 模板使用此代碼:
public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); }
下面的示例添加支持 Razor 頁面和最小控制器支持。 Web 應用程序模板使用此代碼:
public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); }
此外可以組合的新方法。 下面的示例是等效于調(diào)用AddMvcASP.NET Core 2.2 中:
public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddRazorPages(); }
二、Startup.Configure配置
一般不建議:
添加UseRouting。
如果該應用程序調(diào)用UseStaticFiles,將置于UseStaticFiles之前 UseRouting。
如果應用使用身份驗證/授權(quán)功能,如AuthorizePage或[Authorize],將對UseAuthentication并UseAuthorization后 UseRouting。
如果應用使用CORS功能,如[EnableCors],將放置UseCors下一步。
替換UseMvc或UseSignalR與UseEndpoints。
以下是一種Startup.Configure典型的 ASP.NET Core 2.2 應用中:
public void Configure(IApplicationBuilder app) { ... app.UseStaticFiles(); app.UseAuthentication(); app.UseSignalR(hubs => { hubs.MapHub<ChatHub>("/chat"); }); app.UseMvc(routes => { routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}"); }); }
現(xiàn)在的控制器映射內(nèi)發(fā)生UseEndpoints。
添加MapControllers如果應用使用屬性路由。 由于路由包括對許多框架在 ASP.NET Core 3.0 或更高版本的支持,添加屬性路由的控制器是參加。
將為以下內(nèi)容:
MapRoute 使用 MapControllerRoute
MapAreaRoute 使用 MapAreaControllerRoute
由于路由現(xiàn)在包括對不止是 MVC 的支持,已更改了術(shù)語進行明確說明他們所做的這些方法。 如傳統(tǒng)路由MapControllerRoute / MapAreaControllerRoute / MapDefaultControllerRoute它們要添加的順序應用。 將第一位更具體的路由 (如某一區(qū)域的路由)。
如下示例中:
- MapControllers 添加了對屬性路由的控制器支持。
- MapAreaControllerRoute 將控制器的傳統(tǒng)路由添加區(qū)域。
- MapControllerRoute 添加控制器的常規(guī)路由。
現(xiàn)在映射 Razor 頁面內(nèi)發(fā)生UseEndpoints。
添加MapRazorPages如果應用使用 Razor 頁面。 由于終結(jié)點路由包括對許多框架的支持添加 Razor 頁面現(xiàn)在參加。
更新后asp.netCore3.0中Startup.Configure代碼:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); endpoints.MapAreaControllerRoute( name: "areas", "areas", pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); endpoints.MapRazorPages(); }); }
如果要進行分區(qū)路由,需要在控制器Controller頭加Area和Route標簽,否則不能像在asp.netCore2.0中自動路由控制器和Action。示例代碼如下:
namespace WebApplication1.Areas.CMS.Controllers { [Area("CMS")] [Route("CMS/[controller]/[action]")] public class NewsController : Controller { public IActionResult Index() { return View(); } public IActionResult List() { return View(); } } }
這兩句一定要加[Area("CMS")]、[Route("CMS/[controller]/[action]")]
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支持。
上一篇:win7-vs2012下安裝.net frame work 的過程圖文詳解
欄 目:ASP.NET
下一篇:.net core EF Core調(diào)用存儲過程的方式
本文標題:asp.net Core3.0區(qū)域與路由配置的方法
本文地址:http://mengdiqiu.com.cn/a1/ASP_NET/10924.html
您可能感興趣的文章
- 01-11如何給asp.net core寫個簡單的健康檢查
- 01-11docker部署Asp.net core應用的完整步驟
- 01-11ASP.NET Core靜態(tài)文件的使用方法
- 01-11ASP.Net Core中使用枚舉類而不是枚舉的方法
- 01-11Asp.net core利用MediatR進程內(nèi)發(fā)布/訂閱詳解
- 01-11ASP.NET Core中間件計算Http請求時間示例詳解
- 01-11asp.net core集成JWT的步驟記錄
- 01-11ASP.NET Core MVC學習教程之路由(Routing)
- 01-11ASP.NET Core實現(xiàn)自定義WebApi模型驗證詳解
- 01-11ASP.NET Core 實現(xiàn)自定義WebApi模型驗證實例講解


閱讀排行
本欄相關(guān)
- 01-11vscode extension插件開發(fā)詳解
- 01-11VsCode插件開發(fā)之插件初步通信的方法
- 01-11如何給asp.net core寫個簡單的健康檢查
- 01-11.net core高吞吐遠程方法如何調(diào)用組件
- 01-11淺析.Net Core中Json配置的自動更新
- 01-11.NET開發(fā)人員關(guān)于ML.NET的入門學習
- 01-11.NET Core 遷移躺坑記續(xù)集之Win下莫名其
- 01-11.net core webapi jwt 更為清爽的認證詳解
- 01-11docker部署Asp.net core應用的完整步驟
- 01-11ASP.NET Core靜態(tài)文件的使用方法
隨機閱讀
- 01-10C#中split用法實例總結(jié)
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10delphi制作wav文件的方法