.Net Core 3.1.2 区域路由配置【原创】
昨天遇到一个项目问题,新建的.NET core矿建在新建区域的MVC页面里面,无法通过路由找到页面。然后在网络上查询很多资料,发现都是千古文章一大抄,而且都是错误的。
后面又添加了3个专业技术群,同样,没有人知道这个问题,官网也找了,确实由于自己不熟悉,没找到有用的。后来网上找个个大神,大神帮我远程搞懂了这个东西。在此,
特别感谢广州的jalan QQ86167612。
在这里特别区分一下.net core的不同版本的路由。
.NET CORE 2.0版本Startup文件路由配置:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
上面的方式是为区域添加路由,下面的是默认路由。
不过值得注意的是,.NET CORE 3.0以上版本已经不再支持这种路由配置方式了,而是通过终节点方式配置的。我的.net core 版本为3.1.2,亲测有效。Startup文件配置如下。

大家注意到,有两种方式,不过,首先说第一种:在项目中指定任意域。name后面的名字可以任意取,exists的意思就是根据实际的域来区分路由,也就是如果这样配置,则只需要写一个,以后无论加多少域,都可以自动识别路由。
endpoints.MapControllerRoute(
name: "myArea",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
还有一种方式 就是通过指定特定的域。这种方式的缺点就是,每次新增域,都要新增这样一个注册。
endpoints.MapAreaControllerRoute(
name: "areas", "BaseManage",
pattern: "{area:exists}/{controller=User}/{action=Index}/{id?}");
具体的区分一定要看官方说明:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/areas?view=aspnetcore-3.1

然后,贴上我的项目结构

控制器代码,这里的Area一定以及写上哈。里面填写你的区域名称

StartUp配置代码上面以及发图了哈。之后发一个域的页面链接图。

最后希望大家写博客的时候最好是自己亲自测试一下,不要到处抄写,结果全是错的。别人借鉴的时候云里雾里。
再次感谢jalan,并希望这篇文章能对同样问题的你有帮助。
.Net Core 3.1.2 区域路由配置【原创】的更多相关文章
- Asp.Net Core下的两种路由配置方式
与Asp.Net Mvc创建区域的时候会自动为你创建区域路由方式不同的是,Asp.Net Core下需要自己手动做一些配置,但更灵活了. 我们先创建一个区域,如下图 然后我们启动访问/Manage/H ...
- MVC区域路由配置
- ASP.NET Core MVC 中两种路由的简单配置
1.全局约定路由 这种方式配置优先级比较低,如果控制器或者方法上标记了特性路由那么优先走特性路由. 当建立好一个mvc项目里,路由都是默认配置好的. 如果建立的是空项目那么需要手动配置: 1.需要在C ...
- .net core mvc 区域路由设置(配置)
写博客原因:添加了区域(用作后台)后,报错: An unhandled exception occurred while processing the request.AmbiguousActionE ...
- 关于asp.netCore3.0区域和路由配置
在ASP.NET Core 3.0中路由配置和2.0不一样了 一.MVC 服务注册 ASP.NET Core 3.0 添加了用于注册内部的 MVC 方案的新选项Startup.ConfigureSer ...
- Asp.Net Core + Ocelot 网关搭建:路由简单配置
前言 Ocelot是一个基于中间件的网关实现,功能有很多.从浅入深简单学习并记录一下吧.本篇就是一个简单的路由配置实现. DEMO 搭建 首先建立三个项目.Api.User,Api.Artic ...
- asp.net core 系列 6 MVC框架路由(下)
一.URL 生成 接着上篇讲MVC的路由,MVC 应用程序可以使用路由的 URL 生成功能,生成指向操作的 URL 链接. 生成 URL 可消除硬编码 URL,使代码更稳定.更易维护. 此部分重点介绍 ...
- django基础2: 路由配置系统,URLconf的正则字符串参数,命名空间模式,View(视图),Request对象,Response对象,JsonResponse对象,Template模板系统
Django基础二 request request这个参数1. 封装了所有跟请求相关的数据,是一个对象 2. 目前我们学过1. request.method GET,POST ...2. reques ...
- angular2地址栏路由配置
一步一步route过去可以,地址栏直接写url怎么就找不到了呢? 这关乎于Nodejs的express路由规则(http://hm4123660.iteye.com/blog/2195035) exp ...
随机推荐
- Vue结合Django-Rest-Frameword结合实现登录认证(一)
作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/2436173500265335 微信公众 ...
- Docker:一、开始部署第一个Asp.net应用
工具: docker desktop :一个使用Docker的IDE工具,可以理解为SourceTree,也是使用git的一个桌面化工具: kitematic :配合desctop,用来管理本地的镜像 ...
- tf.split函数的用法(tensorflow1.13.0)
tf.split(input, num_split, dimension): dimension指输入张量的哪一个维度,如果是0就表示对第0维度进行切割:num_split就是切割的数量,如果是2就表 ...
- Processing 网格(棋盘格)无限偏移纹理动画
过火 再度出击!这次我们要玩得更火一点---把静帧变动画.没错,将棋盘格动起来!看一下效果: 这是一个经典的无限偏移动画,在很多2d横版射击游戏中都会采用的技术.如何在Processing中实现,有两 ...
- springboot项目整合rabbitMq涉及消息的发送确认,消息的消费确认机制,延时队列的实现
1.引入maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...
- 用JTable 实现日历
效果图: 主要思想:日历最核心的功能就是能显示某年某月对应的日期和星期几.因此只要实现传入具体的年份和月份,得到一组存放了日期的数组a[ ]即可.其中数组的大小设置成42,要考虑的问题是当月的第一天对 ...
- Mac 效率工具必备神器 —— Alfred
前言 alfred 这款软件称为「神器」真是当之无愧.今天专门总结一下,作为之前 Mac 配置教程-开发篇 的补充. 需要说明的是,如果你发现我介绍的功能无法使用,则代表需要花钱购买它的 Powerp ...
- C#怎么从List集合中随机取出其中一个值
1.首先在该命名空间下创建一个实体,和在Main方法下List集合,为后续做准备: /// <summary> /// 实体 /// </summary> public cla ...
- Java NIO:通道
最近打算把Java网络编程相关的知识深入一下(IO.NIO.Socket编程.Netty) Java NIO主要需要理解缓冲区.通道.选择器三个核心概念,作为对Java I/O的补充, 以提升大批量数 ...
- 多测师讲解html _段落标签002_高级讲师肖sir
<html> <head> <meta charset="UTF-8"> <title>段落标签</title> < ...