如何将路由名称与路由参数结合起来

Posted

技术标签:

【中文标题】如何将路由名称与路由参数结合起来【英文标题】:How to combine route name with route parameters 【发布时间】:2021-03-15 21:50:54 【问题描述】:

我需要将 Name = XXX 传递给已经包含 YY 参数的方法。

所以我正在尝试结合

    [HttpPut(Name = "SomeFunc")]
    public bool SomeFunc()
    
        return true;
    

    [HttpPut("abc")]
    public bool SomeFunc(string abc)
    
        return true;
    

所以我有这样的东西

    [HttpPut(Name = "SomeFunc")("abc")]
    public bool SomeFunc(string abc)
    
        return true;
    

但我找不到这样做的正确语法。这样的参数怎么组合?

【问题讨论】:

您到底想达到什么目标?路由abc 和名称SomeFunc?如果是这样,[HttpPut("abc", Name = "SomeFunc")] 谢谢... [HttpPut("abc", Name = "SomeFunc")] 是我要找的。不知何故,我可以发誓我尝试过……但显然没有。非常感谢。 【参考方案1】:

您似乎想要一个名为SomeFunc 的路由,该路由具有一个路由参数abc,如果是这样,那么您应该使用:

[HttpPut("abc", Name = "SomeFunc")]
public bool SomeFunc(string abc)

    return true;

请注意,路由是构造函数参数(参数顺序很重要),而名称是可选的命名参数(参数顺序无关紧要)。

【讨论】:

与 JOSEFtw 相同的响应 -> 不过,附加说明是附加值。谢谢! @Aidanapword 考虑到我在 JOSEFtw 回答前将近 10 分钟对这个解决方案发表了评论,我不知道你评论的意义:) 我只是不确定这是否是 OP 想要的,所以我在发布答案之前等待他们的回复【参考方案2】:

有点不清楚你在问什么。 这是你想要的吗?

[HttpPut("abc", Name = "SomeFunc")]
public bool SomeFunc(string abc)


【讨论】:

以上是关于如何将路由名称与路由参数结合起来的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8:如何使隐式模型绑定路由参数可选而不是抛出 404?

如何使用模板驱动形式将角度路由与角度材料步进器(https://material.angular.io/components/stepper/overview)结合起来?

Flutter:如何将 PageRoute Animation 与 Navigator.of(context).pushNamed 结合起来

如何将 NGXS 与路由解析器一起使用?

如何在Zend Framework 2中访问路由,发布,获取等参数

Next.js 路由:动态与精确