一、MVC 服务注册

ASP.NET Core 3.0 添加了用于注册内部的 MVC 方案的新选项Startup.ConfigureServices。
三个新的顶级扩展方法与 MVC 方案上IServiceCollection可用。 模板使用这些新方法,而不是UseMvc。 但是,AddMvc继续像它已在以前的版本。
下面的示例将添加对控制器和与 API 相关的功能,但不是视图或页面的支持。 API 模板使用此代码

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

下面的示例将添加对控制器、 与 API 相关的功能,和视图,但不是页面的支持。 Web 应用程序 (MVC) 模板使用此代码

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

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

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

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

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

二、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. public void Configure(IApplicationBuilder app)
  2. {
  3. ...
  4.  
  5. app.UseStaticFiles();
  6.  
  7. app.UseAuthentication();
  8.  
  9. app.UseSignalR(hubs =>
  10. {
  11. hubs.MapHub<ChatHub>("/chat");
  12. });
  13.  
  14. app.UseMvc(routes =>
  15. {
  16. routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
  17. });
  18. }

现在的控制器映射内发生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. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  2. {
  3. if (env.IsDevelopment())
  4. {
  5. app.UseDeveloperExceptionPage();
  6. }
  7. else
  8. {
  9. app.UseExceptionHandler("/Home/Error");
  10. // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
  11. app.UseHsts();
  12. }
  13.  
  14. app.UseHttpsRedirection();
  15. app.UseStaticFiles();
  16.  
  17. app.UseCookiePolicy();
  18.  
  19. app.UseRouting();
  20.  
  21. app.UseAuthorization();
  22.  
  23. app.UseEndpoints(endpoints =>
  24. {
  25. endpoints.MapControllerRoute(
  26. name: "default",
  27. pattern: "{controller=Home}/{action=Index}/{id?}");
  28.  
  29. endpoints.MapAreaControllerRoute(
  30. name: "areas", "areas",
  31. pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
  32. endpoints.MapRazorPages();
  33. });
  34. }

如果要进行分区路由,需要在控制器Controller头加Area和Route标签,否则不能像在asp.netCore2.0中自动路由控制器和Action。示例代码如下:

  1. namespace WebApplication1.Areas.CMS.Controllers
  2. {
  3. [Area("CMS")]
  4. [Route("CMS/[controller]/[action]")]
  5. public class NewsController : Controller
  6. {
  7. public IActionResult Index()
  8. {
  9. return View();
  10. }
  11. public IActionResult List()
  12. {
  13. return View();
  14. }
  15. }
  16. }
  1. 这两句一定要加[Area("CMS")]、[Route("CMS/[controller]/[action]")]
  2.  
  3. 更多:
    Asp.Net Core 3.0中如何使用 Newtonsoft.Json 库序列化数据Asp.Net Core Cookie使用,Asp.net Core Cookie操作失效
    asp.net core session使用

asp.netCore3.0区域和路由配置变化的更多相关文章

  1. 关于asp.netCore3.0区域和路由配置

    在ASP.NET Core 3.0中路由配置和2.0不一样了 一.MVC 服务注册 ASP.NET Core 3.0 添加了用于注册内部的 MVC 方案的新选项Startup.ConfigureSer ...

  2. asp.netCore3.0 中使用app.UseMvc() 配置路由

    一.新配置路由策略  在 Asp.Net Core 3.0中默认不再支持app.UserMvc() 方式配置路由 系统. 而是使用新的模式,点击查看asp.netCore3.0区域和路由配置变化 默认 ...

  3. [译]使用DOT语言和GraphvizOnline来可视化你的ASP.NETCore3.0终结点01

    这是系列文章中的第一篇:使用GraphvizOnline可视化ASP.NETCore3.0终结点.. 第1部分-使用DOT语言来可视化你的ASP.NETCore3.0终结点(本文) 第2部分-向ASP ...

  4. Vue2.0中的路由配置

    Vue2.0较Vue1.0,路由有了较大改变.看一下Vue2.0中的路由如何配置: 步骤一: 在main.js文件中引入相关模块以及组件及实例化vue对象配置选项路由及渲染App组件 默认设置如下: ...

  5. asp.netcore3.0 netstandard2.1 使用 DbProviderFactories 连接数据库

    在.netstandard2.0时 System.Data.Common 这个包里并没有加入DbProviderFactories DbProviderFactories类在.netframework ...

  6. .net Core之【区域】路由配置

    1.创建项目 现在的项目是比较干净的 2.创建一个区域 创建完成后,会出现一个页面,人家都说了怎么设置路由规则 3.进入Startup.cs文件中添加红色代码 app.UseMvc(routes =& ...

  7. OSPF多区域原理与配置

    OSPF多区域原理与配置 目录 一.OSPF多区域生成 1.1.生成OSPF多区域的原因 二.OSPF的三种通信量 2.1.域内通信量 2.2.域间通信量 2.3.外部通信量 三.OSPF的路由器类型 ...

  8. django 简单路由配置

    Django==2.0.1 版本路由配置: 1.在manage.py同级目录下新建一个应用app1 在app1下新建urls.py文件,定义一个app1的空白路由: from django.urls ...

  9. Rest_framework 和路由配置(一)

    简介 Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用. Rest_framework 核心思想: 缩减代码. ...

随机推荐

  1. Cheat Engine 作弊表框架代码

    打开游戏 打开自动汇编 扫描的所有过程,这里就省略了 引用作弊表框架代码 查找使阳光减少的地址 拷贝这个地址 添加到自动汇编脚本里,并添加汇编指令 分配到当前作弊表 生成自动汇编脚本 进行激活测试 可 ...

  2. uni-app结合PHP实现单用户登陆

    单用户登陆,即在一个应用中,同一个用户只能在线登陆一个,一个用户登陆,在其他设备上会被即时挤下线,确认后清空登陆该设备上的登陆装填并退回到登陆界面. uni-app是目前能通过使用vue.js框架只需 ...

  3. 大数据集群环境搭建之一 hadoop-ha高可用安装

    1.如果你使用root用户进行安装. vi /etc/profile 即可 系统变量 2.如果你使用普通用户进行安装. vi ~/.bashrc 用户变量 export HADOOP_HOME=/ex ...

  4. css实现弹框垂直居中

    原文链接:https://blog.csdn.net/sunny327/article/details/47419949/ <!DOCTYPE html><html> < ...

  5. .NET CORE 升级3.0遇到的问题the project must provide a value for configuration

    将.NET Core 2.2应用程序迁移到Core 3.0时遇到了the project must provide a value for configuration的问题.原来在.proj项目文件文 ...

  6. python 中根据python版本(2或3)定义函数

    示意代码如下: #_*_coding:UTF-8_*_ import time import socket import os import sys if sys.version_info.major ...

  7. Educational Codeforces Round 67 D. Subarray Sorting

    Educational Codeforces Round 67 D. Subarray Sorting 传送门 题意: 给出两个数组\(a,b\),现在可以对\(a\)数组进行任意次排序,问最后能否得 ...

  8. ovirt常用后台维护命令

    以下命令是在node主机上操作 查看hosted-engine虚机的状态 hosted-engine --vm-status 启动hosted-engine虚机 hosted-engine --vm- ...

  9. destoon系统开发-最新利用浏览器的cookie 做历史浏览记录

      注意: 代码 放在要显示的为 (一般放在详情页),注意本教程不入库,直接利用浏览器的 cookie 缓存判断    <!--历史浏览记录 S--> <div class=&quo ...

  10. NetEQ主要文件简介

    accelerate.h,accelerate.cc 加速操作,对语音信号处理以实现快速播放. Accelerate类继承自父类TimeStretch,大多数功能由TimeStretch实现. Ret ...