【问题标题】:Optional route parameters可选路由参数
【发布时间】:2021-04-21 01:37:54
【问题描述】:
    [Route("v2/Actual")]
    [HttpGet]
    public async Task<IEnumerable<MeasurementActualAggregatedResultViewModel>> GetActualsWithHierarchy(int calendarStartYear = 0, int calendarEndYear = 0, string managementSystem = "amspe")
    {
    
      var result = ...
    
      return result;
    } 



 // I want to make this recognise ....v2/Actual?measurementId=1&calendarMonth=12&calendarYear=2020
[Route("v2/Actual{measurementId}{calendarMonth}{calendarYear}")]     
[HttpGet]
public async Task<MeasurementActualAggregatedResultViewModel> GetActual(int measurementId, int calendarMonth, int calendarYear)
{
    return null;
}

我有一个上面的 API,我想将路由配置为如上。我很难在有问号的地方找到有关 Route 参数规范的答案。

Route(...) 值应该包含什么?

谢谢。

【问题讨论】:

  • 这是 ASP.NET 还是 ASP.NET Core?
  • 另外,这些是[Route(...)] 中的路由参数,但您的评论指的是查询参数。
  • ASP.net 核心。抱歉,我的意思是路由参数。
  • 您能否编辑示例 URL 以显示您希望路由参数如何工作?
  • 嗨@taylorswiftfan,有什么更新吗?如果我的回答能帮助您解决问题,您能接受吗?如果没有,你能跟进让我知道吗?参考:How to accept as answer.Thanks.

标签: c# asp.net-core routes


【解决方案1】:

使用如下Route即可,request url中的查询字符串默认会匹配action中的参数,不需要添加查询字符串作为Route参数:

[Route("v2/Actual")]     
[HttpGet]
public async Task<MeasurementActualAggregatedResultViewModel> GetActual(int measurementId, int calendarMonth, int calendarYear)
{
    return null;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-22
    • 2012-03-24
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    相关资源
    最近更新 更多