IT编程 > 网页制作 > HTML

.Net Core 3.1.2 区域路由配置【原创】

84人参与2021-08-21

昨天遇到一个项目问题,新建的.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,并希望这篇文章能对同样问题的你有帮助。

 

您对本文有任何疑问!!点此进行留言回复

推荐阅读

猜你喜欢

web开发学习(2)HTML零基础学习

07-14

html中插入wmv格式视频文件的代码

12-01

Dom Api之节点操作

07-17

才发现网易相册已于2019年5月8号停止运营,如何导出相册照片:http://photo.163.com/transfer/html/login , 使用相册帐号登录,提供真实姓名、手机号码

10-24

scrapy 爬取糗事百科段子篇章二(下载用户头像)

07-11

Semantic UI 之 条目 item

08-14

发布时间:1H内显示xx分钟前,1H上24H内显示xx小时前,超过24H显示具体日期。

07-22

Unity2019.4.6f1和AndroidStudio4.0实现安卓原生向unity发送消息

11-26

热门评论