一、MVC 服务注册

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

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

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

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

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

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

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

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 应用中:

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代码:

 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。示例代码如下:

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]")]

更多:
在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. CENTOS7-JAVA模拟CPU占用高及排查( 转)

    环境 centos7 1核2GB Java8 模拟cpu占用高 新建一个名为jvm-learn的springboot项目 模拟代码如下 import org.springframework.boot. ...

  2. Django:RestFramework之-------分页

    9.分页操作 分页,看第n页,每页显示n条数据 分页,在n个位置,向后查看n条数据. 加密分页,上一页和下一页 1.基于PageNumberPagination分页 1.路由: url(r'^(?P& ...

  3. 英语SouthRedAgate南红玛瑙

    南红玛瑙(SouthRedAgate)是玛瑙的一个种类,古称”赤玉”,质地细腻油润,是中国独有的品种.由于产量稀少,老南红玛瑙价格急剧上升.南红玛瑙曾被古人用之入药,养心养血. 现在的南红玛瑙已经和和 ...

  4. Android-----实现给图片添加字体

    实现给图片添加字体,图片旋转功能:xml布局文件内容如下,一个简单的ImageView布局 <com.example.hsjgapp.RotateImageView //这里存放要展示的图片 a ...

  5. Node初识

    初识Nodejs Node.js的诞生 作者Ryan Dahl 瑞恩·达尔 2004 纽约 读数学博士 2006 退学到智利 转向开发 2009.5对外宣布node项目,年底js大会发表演讲 2010 ...

  6. profile name is not valid,The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'.

    使用不是sysadmin权限的账号执行存储发邮件,报异常profile name is not valid, EXEC msdb.dbo.sp_send_dbmail @profile_name = ...

  7. TI DSP数据长度

    环境CCS7.2 平台C6748 结果: sizeof short int is 2sizeof int is 4sizeof long is 4sizeof unsigned long is 4si ...

  8. python工程化最佳实践

    1.pipenv 真实环境 vs virtualenv vs pipenv 2.自定义用户模型 继承BaseUserManager和AbstractBaseUser,在settings中指定AUTH_ ...

  9. ARM架构体系

    架构 处理器家族 ARMv1 ARM1 ARMv2 ARM2.ARM3 ARMv3 ARM6, ARM7 ARMv4 StrongARM.ARM7TDMI.ARM9TDMI ARMv5 ARM7EJ. ...

  10. Beta冲刺第1次

    二.Scrum部分 1. 各成员情况 张祥 学号:201731062624 今日进展 完善了人脸识别页面效果 存在问题 无 明日安排 视后勤组和web后端情况而定 截图 陈远杨 学号:20173106 ...