首页 > 其他 > 详细

Core3.0路由配置

时间:2020-06-04 14:57:13      阅读:42      评论:0      收藏:0      [点我收藏+]

前言

 MSDN文档,对ASP.NETCore中的路由完整的介绍

https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/routing?view=aspnetcore-3.0#routing-basics

概念

路由负责匹配传入的 HTTP 请求,然后将这些请求发送到应用的可执行终结点。

终结点是应用的可执行请求处理代码单元。 终结点在应用中进行定义,并在应用启动时进行配置。

终结点匹配过程可以从请求的 URL 中提取值,并为请求处理提供这些值。 通过使用应用中的终结点信息,路由还能生成映射到终结点的 URL。

测试步骤

ValuesController.cs代码

    [Route("api/[controller]")]
    public class ValuesController : Controller
    {
        // GET api/values
        [HttpGet]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        [HttpGet("{id}")]
        public string Get(int id)
        {
            return "value";
        }

        // POST api/values
        [HttpPost]
        public void Post([FromBody] string value)
        {
        }

        // PUT api/values/5
        [HttpPut("{id}")]
        public void Put(int id, [FromBody] string value)
        {
        }

        // DELETE api/values/5
        [HttpDelete("{id}")]
        public void Delete(int id)
        {
        }
    }

 

将Startup.cs中的路由配置注释

技术分享图片

 

 运行结果,请求返回400

技术分享图片

 

 注册路由到控制器

先取消注释,

技术分享图片

 

 路由配置,

技术分享图片

 

 直接Get请求到控制器,此时会根据HTTP请求去匹配到对应的方法,Get请求访问特性为HttpGet的Action方法

技术分享图片

 

 对应的Action方法

技术分享图片

 

发生路由重载

同一中Http请求方法,有2个Action方法,如下如

技术分享图片

 

 此时请求,会报错

技术分享图片

 

 解决办法

1.修改路由规则 /api/[controller]/[action]

2.修改谓词,比如一个get,一个post

3.如果有参数的话,Get方法添加参数,比如[HttpGet("{id}")],此时的方法名为public string Get(int id)

4.按照业务功能,创建一个新的相关的Controller,此方法需要根据业务判断去决定是否使用。

 

项目实际使用

创建了一个类,继承自Controller类,标记为APIController,路由配置到Action方法,可规避掉路由重载的问题

技术分享图片

 

Core3.0路由配置

原文:https://www.cnblogs.com/masonblog/p/13042351.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!