一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net Core3.0區域與路由配置的方法

asp.net Core3.0區域與路由配置的方法

2020-06-15 14:12cqinwn ASP.NET教程

這篇文章主要給大家介紹了關于asp.net Core3.0區域與路由配置的方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用asp.net Core3.0具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

在ASP.NET Core 3.0中路由配置和2.0不一樣了

一、MVC 服務注冊

ASP.NET Core 3.0 添加了用于注冊內部的 MVC 方案的新選項Startup.ConfigureServices。

三個新的頂級擴展方法與 MVC 方案上IServiceCollection可用。 模板使用這些新方法,而不是UseMvc。 但是,AddMvc繼續像它已在以前的版本。

下面的示例將添加對控制器和與 API 相關的功能,但不是視圖或頁面的支持。 API 模板使用此代碼:

?
1
2
3
4
public void ConfigureServices(IServiceCollection services)
{
 services.AddControllers();
}

下面的示例將添加對控制器、 與 API 相關的功能,和視圖,但不是頁面的支持。 Web 應用程序 (MVC) 模板使用此代碼:

?
1
2
3
4
public void ConfigureServices(IServiceCollection services)
{
 services.AddControllersWithViews();
}

下面的示例添加支持 Razor 頁面和最小控制器支持。 Web 應用程序模板使用此代碼:

?
1
2
3
4
public void ConfigureServices(IServiceCollection services)
{
 services.AddRazorPages();
}

此外可以組合的新方法。 下面的示例是等效于調用AddMvcASP.NET Core 2.2 中:

?
1
2
3
4
5
public void ConfigureServices(IServiceCollection services)
{
 services.AddControllers();
 services.AddRazorPages();
}

二、Startup.Configure配置

一般不建議:

添加UseRouting。

如果該應用程序調用UseStaticFiles,將置于UseStaticFiles之前 UseRouting。

如果應用使用身份驗證/授權功能,如AuthorizePage或[Authorize],將對UseAuthentication并UseAuthorization后 UseRouting。

如果應用使用CORS功能,如[EnableCors],將放置UseCors下一步。

替換UseMvc或UseSignalR與UseEndpoints。

以下是一種Startup.Configure典型的 ASP.NET Core 2.2 應用中:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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?}");
 });
}

現在的控制器映射內發生UseEndpoints。

添加MapControllers如果應用使用屬性路由。 由于路由包括對許多框架在 ASP.NET Core 3.0 或更高版本的支持,添加屬性路由的控制器是參加。

將為以下內容:

MapRoute 使用 MapControllerRoute

MapAreaRoute 使用 MapAreaControllerRoute

由于路由現在包括對不止是 MVC 的支持,已更改了術語進行明確說明他們所做的這些方法。 如傳統路由MapControllerRoute / MapAreaControllerRoute / MapDefaultControllerRoute它們要添加的順序應用。 將第一位更具體的路由 (如某一區域的路由)。

如下示例中:

  • MapControllers 添加了對屬性路由的控制器支持。
  • MapAreaControllerRoute 將控制器的傳統路由添加區域。
  • MapControllerRoute 添加控制器的常規路由。

現在映射 Razor 頁面內發生UseEndpoints。

添加MapRazorPages如果應用使用 Razor 頁面。 由于終結點路由包括對許多框架的支持添加 Razor 頁面現在參加。

更新后asp.netCore3.0中Startup.Configure代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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();
   });
  }

如果要進行分區路由,需要在控制器Controller頭加Area和Route標簽,否則不能像在asp.netCore2.0中自動路由控制器和Action。示例代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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]")]

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。

原文鏈接:https://www.cnblogs.com/cqinwn/p/10931973.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 12345国产精品高清在线 | 亚洲日本va午夜中文字幕 | 国产欧美精品专区一区二区 | 99re这里都是精品 | 天天操天天爽天天射 | 日本色网址 | 91肥熟国产老肥熟在线 | 免费jizz在在线播放国产 | 国产一卡2卡3卡4卡公司科普 | 精品国产综合区久久久久久 | 国产精品视频在这里有精品 | 欧美性xxx狂流白浆 欧美性f | 国产区最新 | ai换脸明星造梦工厂忘忧草 | 办公室里被迫高h | 亚欧精品在线观看 | h版欧美大片免费观看 | www.亚洲5555.com| 欧美疯狂做爰xx | 爱豆传媒最新视频国产 | 久久精品国产在热亚洲 | 丰满岳乱妇在线观看视频国产 | 国产精品免费久久久久影院小说 | 精品综合久久久久久97超人 | 韩国禁片在线观看久 | 国产精品青青青高清在线 | 好涨好爽好大视频免费 | 国产成人一区二区三区视频免费蜜 | 国产九九视频在线观看 | 青青青国产在线观看 | 精品国产麻豆AV无码 | 欧美成a人片免费看久久 | 亚洲成av人在线视 | 俄罗斯女同和女同xx | 99er视频| 国产在线综合网 | 俺来操| 无码国产成人777爽死在线观看 | 国产小视频在线 | 国产精品99久久久 | 丝袜老师好湿好紧我要进去了 |