.Net Core Web Api_笔记11_组合路由

在一个Action中倘若想实现多种结果返回或者多种输入参数
就势必要能够支援多种路由模板
可能搭配不同权限身份会有不同路由网址

一个action配置多组路由模板

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace NetCoreApiTest1.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class AccountController : ControllerBase
    {
        [Route("")]     //api/account
        [Route("/")]    //api/account/
        [Route("Users")]//api/account/users
        public string Users()
        {
            return "users data...";
        }


    }
}

不透过Controller层级的路由模板一律下放给各组action设置路由

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace NetCoreApiTest1.Controllers
{
    //[Route("api/[controller]")]
    [ApiController]
    public class AccountController : ControllerBase
    {
        [Route("Account")]     //api/account
        [Route("Account/")]    //api/account/
        [Route("Account/Users")]//api/account/users
        public string Users()
        {
            return "users data...";
        }

        [Route("Users/{id}")]
        [Route("Users/Get/{id}")]
        public string GetUserById(string id)
        {
            return $"User Id: {id}";
        }

    }
}

Controller层级跟Action层级都有组合路由情况
已下面情况来讲就会共有六种路由模板的组合可以访问

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace NetCoreApiTest1.Controllers
{
    [Route("Account")]
    [Route("api/[controller]")]
    [ApiController]
    public class AccountController : ControllerBase
    {
        [Route("")]     
        [Route("UserList")]    
        [Route("GetUsers")]
        public string Users()
        {
            return "users data...";
        }

    }
}

https://ithelp.ithome.com.tw/upload/images/20210920/20107452e0aodkLpSp.png

本篇已同步发表至个人部落格
https://coolmandiary.blogspot.com/2021/09/net-core-web-api11.html


<<:  [Day5] POSTMAN及取得Nonce值

>>:  Day-20 使用 @apply 制做组件

RISC-V: R-type 位移指令

今天一样是简单的 SLL、SRL、SRA 指令实作, 再一样为了 Code Stream Logge...

Re: 新手让网页 act 起来: Day04 - JSX

前言 前面两篇基础的介绍 React.createElemnt(),但实际再开发上很少真的直接写它,...

【Day 09】Text Message 应用

前一天我们讲到综合版可以接收所有种类的讯息。 @csrf_exempt def callback(r...

(Day10) 物件基础介绍

前言 物件 在 JS 是十分重要的,并且关於物件有几个满重要的特性: 物件传参考 物件深层/浅层 复...

使用bat档进行主机环境布署

工作中经常会遇到需要在客户端主机架站的情况, 如果客户端只有一台主机,手动布署或许不会花太多时间, ...