В моем API я хотел бы иметь маршруты типа GET /api/v1/widgets/1,2,3
и GET /api/v1/widgets/best-widget,major-widget,bob-the-widget
public class WidgetsController : MyApiController
{
public ActionResult Show(IEnumerable<int> ids)
{
}
public ActionResult Show(IEnumerable<string> names)
{
}
}
У меня настроены маршруты, чтобы привести меня к действию, но я не могу понять, как превратить 1,2,3
в new List<int>(){1, 2, 3}
и так далее. Конечно, я мог бы просто взять string
и проанализировать его в своем действии, но я бы хотел не идти по этому пути.
Одна вещь, которая пришла мне в голову, это поместить что-то в метод OnActionExecuting
, но тогда я не был уверен, что именно туда вставить (очевидно, я мог бы что-то взломать, но я пытаюсь что-то написать многоразовый.)
Основные вопросы, которые у меня есть, - это как узнать, нужно ли мне вообще что-либо делать (иногда вышестоящий пользователь ValueProviders все выяснит), и как справиться с выяснением типа, к которому нужно привести тип (например, откуда я знаю что в этом случае мне нужно перейти к коллекции целых чисел или коллекции строк, и как мне это сделать?)
Кстати, у меня тоже была идея реализовать ValueProvider
, но я заблудился по схожим вопросам.