c# - 可选路由参数
问题描述
[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(...) 值应该包含什么?
谢谢你。
解决方案
只需使用如下所示的 Route 即可,请求 url 中的查询字符串将默认匹配实际的参数,无需添加查询字符串作为 Route 参数:
[Route("v2/Actual")]
[HttpGet]
public async Task<MeasurementActualAggregatedResultViewModel> GetActual(int measurementId, int calendarMonth, int calendarYear)
{
return null;
}
推荐阅读
- azure - Azure 存储 - 防火墙和终结点的使用
- antd - 在 ANTD 表中为父子显示数据,如树数据
- pdf - 如何检查 TrueType 字体的 cmap 表和子表?
- c# - 如何在 c# xamarin 上使用代理连接 mysql 数据库
- javascript - Jest 无法检测到模拟函数调用
- flutter - 触发flutter_local_notification时如何调用屏幕?
- reactjs - Intellisense 在 Visual Studio Code 中缺少自动导入
- python - 使用两个需要排除 python 版本的 pip 包
- java - Netbeans 8.2 实体类的会话 bean 后模块尚未部署
- android - 无法使用 kotlin 解决 Android Studio 中的数据绑定问题