欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

asp.net Core3.0區(qū)域與路由配置的方法

 更新時(shí)間:2019年05月28日 09:09:41   作者:cqinwn  
這篇文章主要給大家介紹了關(guān)于asp.net Core3.0區(qū)域與路由配置的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用asp.net Core3.0具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

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

一、MVC 服務(wù)注冊(cè)

ASP.NET Core 3.0 添加了用于注冊(cè)內(nèi)部的 MVC 方案的新選項(xiàng)Startup.ConfigureServices。

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

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

public void ConfigureServices(IServiceCollection services)
{
 services.AddControllers();
}

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

public void ConfigureServices(IServiceCollection services)
{
 services.AddControllersWithViews();
}

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

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。

如果該應(yīng)用程序調(diào)用UseStaticFiles,將置于UseStaticFiles之前 UseRouting。

如果應(yīng)用使用身份驗(yàn)證/授權(quán)功能,如AuthorizePage或[Authorize],將對(duì)UseAuthentication并UseAuthorization后 UseRouting。

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

替換UseMvc或UseSignalR與UseEndpoints。

以下是一種Startup.Configure典型的 ASP.NET Core 2.2 應(yīng)用中:

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如果應(yīng)用使用屬性路由。 由于路由包括對(duì)許多框架在 ASP.NET Core 3.0 或更高版本的支持,添加屬性路由的控制器是參加。

將為以下內(nèi)容:

MapRoute 使用 MapControllerRoute

MapAreaRoute 使用 MapAreaControllerRoute

由于路由現(xiàn)在包括對(duì)不止是 MVC 的支持,已更改了術(shù)語(yǔ)進(jìn)行明確說(shuō)明他們所做的這些方法。 如傳統(tǒng)路由MapControllerRoute / MapAreaControllerRoute / MapDefaultControllerRoute它們要添加的順序應(yīng)用。 將第一位更具體的路由 (如某一區(qū)域的路由)。

如下示例中:

  • MapControllers 添加了對(duì)屬性路由的控制器支持。
  • MapAreaControllerRoute 將控制器的傳統(tǒng)路由添加區(qū)域。
  • MapControllerRoute 添加控制器的常規(guī)路由。

現(xiàn)在映射 Razor 頁(yè)面內(nèi)發(fā)生UseEndpoints。

添加MapRazorPages如果應(yīng)用使用 Razor 頁(yè)面。 由于終結(jié)點(diǎn)路由包括對(duì)許多框架的支持添加 Razor 頁(yè)面現(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();
   });
  }

如果要進(jìn)行分區(qū)路由,需要在控制器Controller頭加Area和Route標(biāo)簽,否則不能像在asp.netCore2.0中自動(dòng)路由控制器和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é)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • .net出現(xiàn)80080005錯(cuò)誤的解決辦法分享

    .net出現(xiàn)80080005錯(cuò)誤的解決辦法分享

    這篇文章介紹了.net出現(xiàn)80080005錯(cuò)誤的解決辦法,有需要的朋友可以參考一下,希望可以對(duì)你有所幫助
    2013-07-07
  • .NET/C#如何使用反射注冊(cè)事件詳解

    .NET/C#如何使用反射注冊(cè)事件詳解

    反射是.NET中的重要機(jī)制,下面這篇文章主要給大家介紹了關(guān)于.NET/C#如何使用反射注冊(cè)事件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • 在.Net中使用MongoDB的方法教程

    在.Net中使用MongoDB的方法教程

    最近在研究mongodb,在網(wǎng)上搜索發(fā)現(xiàn)針對(duì).net 中使用mongodb的文章要么是早期的驅(qū)動(dòng)版本,要么資料很少,所以寫(xiě)個(gè)隨筆記錄一下,本文詳細(xì)的給大家介紹了在.Net中使用MongoDB的方法教程,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-05-05
  • .net采用ajax實(shí)現(xiàn)郵箱注冊(cè)和地區(qū)選擇實(shí)例

    .net采用ajax實(shí)現(xiàn)郵箱注冊(cè)和地區(qū)選擇實(shí)例

    這篇文章主要介紹了.net采用ajax實(shí)現(xiàn)郵箱注冊(cè)和地區(qū)選擇的方法,以實(shí)例形式詳細(xì)講述了.net采用ajax的技巧,非常實(shí)用,需要的朋友可以參考下
    2014-10-10
  • C#中HTML字符轉(zhuǎn)換函數(shù)分享

    C#中HTML字符轉(zhuǎn)換函數(shù)分享

    在ASP.Net中經(jīng)常會(huì)從網(wǎng)面中取數(shù)據(jù)或更新網(wǎng)頁(yè)的顯示。因?yàn)镠TML中有些特殊字符如<, >, &等,顯示實(shí)際值不一致,造成保存到數(shù)據(jù)庫(kù)再取出來(lái)時(shí)會(huì)不一樣
    2012-07-07
  • asp.net 生成縮略圖代碼

    asp.net 生成縮略圖代碼

    asp.net 生成縮略圖代碼,需要的朋友可以參考下。
    2010-03-03
  • ASP.NET MVC3手把手教你構(gòu)建Web

    ASP.NET MVC3手把手教你構(gòu)建Web

    微軟更新速度一直都是很快,目前最新版本是ASP.NET MVC 5.1,而我還在剛剛起步研究MVC3.0。本文是MVC的基礎(chǔ),構(gòu)建最簡(jiǎn)單的MVC項(xiàng)目,感興趣的小伙伴們可以參考一下
    2015-09-09
  • 為密碼文本框要求不可粘帖字符串只可手動(dòng)輸入(附演示動(dòng)畫(huà))

    為密碼文本框要求不可粘帖字符串只可手動(dòng)輸入(附演示動(dòng)畫(huà))

    以前開(kāi)發(fā)程序時(shí),用戶(hù)登錄的密碼文本框,是可以粘帖密碼字符串的,為了安全起見(jiàn)用戶(hù)要求不要粘帖,只能由手動(dòng)輸入,感興趣的朋友可以了解下
    2013-01-01
  • 使用CefSharp在.Net程序中嵌入Chrome瀏覽器

    使用CefSharp在.Net程序中嵌入Chrome瀏覽器

    這篇文章介紹了使用CefSharp在.Net程序中嵌入Chrome瀏覽器的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • asp.net 分頁(yè)sql語(yǔ)句(結(jié)合aspnetpager)

    asp.net 分頁(yè)sql語(yǔ)句(結(jié)合aspnetpager)

    一直用的是存儲(chǔ)過(guò)程分頁(yè),小項(xiàng)目一般不寫(xiě)存儲(chǔ)過(guò)程,就需要直接寫(xiě)分頁(yè)sql語(yǔ)句。
    2009-01-01

最新評(píng)論