Привет, ребята, я новичок в атрибуции маршрутизации и не уверен, что это возможно.Несколько необязательных параметров маршрутизация атрибутов api api
Что у меня есть это маршрут атрибут, который прекрасно работает как этот
[HttpGet]
[Route("GetIssuesByFlag/{flag:int=3}")]
public IEnumerable<IssueDto> GetIssuesByFlag(int flag)
Однако теперь я хочу, чтобы добавить некоторые дополнительные необязательные параметры, чтобы сузить свой поиск, поэтому я хочу, чтобы добавить 2 дополнительные необязательные параметры.
, что я пробовал:
[HttpGet]
[Route("GetIssuesByFlag/{flag:int=3?}/{categoryId:int?}/{tagIds?}")]
public IEnumerable<IssueDto> GetIssuesByFlag(int flag , int? categoryId = null, int?[] tagIds = null)
Это прекрасно работает, если мой вызов /api/controller/1/2
, но не с 404, когда речь идет о /api/controller/1
Как я могу добиться этого?
Редактировать 1: ответ Нкоси работал, однако необходима дополнительная модификация.
[HttpGet]
[Route("GetIssuesByFlag/{flag:int=3}/{tagIds?}/{categoryId:int?}")]
public IEnumerable<IssueDto> GetIssuesByFlag(int flag , List<int> tagIds, int? categoryId = null)
список или массив должен быть вторым, поскольку это автоматически нулевым значение, если значение не предусмотрено и не может быть помечена как необязательные с = NULL
'{flag: int = 3?}'. это либо необязательный '{flag: int?}' со значением по умолчанию в действии, либо '{flag: int = 3}'. В настоящее время у вас есть 3 необязательных параметра. когда у вас есть только таблица маршрутизации с 1 значением, не знаете, какой дополнительный параметр вы имеете в виду, поэтому ответ 404 – Nkosi
от Nikosi работал для меня! Ну, первый, а не раскалывающий, удалив все, теперь все работает нормально – Harry
первый (удалить необязательно из флага), можете ли вы обновить его на ответы, чтобы я мог отметить как правильно? – Harry