首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ASP.NET内核中定义简单的嵌套路由

如何在ASP.NET内核中定义简单的嵌套路由
EN

Stack Overflow用户
提问于 2021-12-14 21:48:54
回答 1查看 452关注 0票数 1

是否存在使用ASP.NET核心以与大多数其他语言相同的方式进行标准嵌套路由的内置方式?如何在C#中实现我在Go和JS中显示的内容?

Go中使用chi的示例

代码语言:javascript
复制
r := chi.NewRouter()
r.Use(amiddleware)                           // Use some middleware
r.Group(func(r chi.Router) {                 // A group with further configuration
  r.Use(another)                             // Middleware that only applies to group
  r.Route("/trunk", func(r chi.Router) {     // First level of a nested route
    r.Route("/branch", func(r chi.Router) {  // Next level
      r.Get("/leaf", Leaf)                   // An endpoint
    })
  })
})

func Leaf(w http.ResponseWriter, r *http.Request) { ... }

http.ListenAndServe(":8080", r)  // Start it up

使用express的JS示例

代码语言:javascript
复制
const app = express()
app.use(amiddleware)                          // Use middleware
app.use(Router().                             // A group with further configuration
  use(another).                               // Middleware that only applies to group
  use('/trunk', Router().                     // First level of a nested route
    use('/branch', Router().                  // Next level
      get('/leaf', leaf)                      // An endpoint
    )  
  )  
)

function leaf(req, res, next) { ... }

app.listen(8080)   // Start it up
EN

回答 1

Stack Overflow用户

发布于 2021-12-15 08:36:11

在asp.net核心中,您可以使用route.MapRoute规则。但我个人认为它比go语言的路由规则更麻烦。没有像杜松子和比我这样简单的框架。请参阅本文件:

https://learn.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/controllers-and-routing/creating-custom-routes-cs

有一种更简单的方法可以像这样设置路由:

代码语言:javascript
复制
 [ApiController]
    [Route("api/[controller]")]
    public class HomeController : Controller
    {


        [HttpGet("{id}")]
        public string Test(int id)
        {
            return "Test";
        }

        [HttpGet("test/{id:int}")]
        public string Test1(int id)
        {
            return "Test1";
        }
    }

测试网址:https://localhost:port/api/home/1

Test1 url:https://localhost:port/api/home/test/1

更多路由使用参考:

ASP.NET核中控制器动作的路由选择

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70355935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档