Собственный Enum в параметре маршрута, это возможно? - PullRequest
0 голосов
/ 12 января 2019

У меня есть простая функция Api:

// POST: api/Cultivation/Sow/1/5
[HttpGet("Sow/{grain}/{id}")]
public IActionResult Sow(Grain grain, int id) { }

Мой список выглядит так:

public enum Grain
{
    None,
    Rice,
    Corn,
    Oats
}

У меня вопрос, возможно ли получить Grain или любое перечисление из Route? Когда да, как это сделать?

Если нет, как "найти" enum по int элегантным образом, без операторов if и т. Д.? Потому что если myWebapi не может принять enums, это легко сделать простым int

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Пожалуйста, обратитесь к этой документации: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-2.2#use-routing-middleware

Надеюсь, это поможет.

Вы можете добавить URL, как показано

app.UseMvc(routes =>
{
    routes.MapRoute("default", "{controller=Home}/{action=Index}/{grain=somedefault}/{id?}");
});

Жетоны в фигурных скобках ({...}) определяют параметры маршрута, которые связан, если маршрут соответствует. Вы можете определить более одного маршрута параметр в сегменте маршрута, но они должны быть разделены литералом значение. Например, {controller = Home} {action = Index} не является допустимым маршрут, поскольку между {controller} и {Действие}. Эти параметры маршрута должны иметь имя и могут иметь указаны дополнительные атрибуты.

0 голосов
/ 12 января 2019
public enum EnumReviewStatus
{
    Overdue = 4,
}

public IActionResult Index(EnumReviewStatus? statusFilter = null)

URL Индекс? StatusFilter = Просрочено это работа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...