Получить строку с несколькими параметрами в контроллере API и проанализировать ее - PullRequest
0 голосов
/ 28 марта 2019

Этот метод принимает этот тип URI:

/method?a=1&b=2&c=3

[Route("method")]
public string Get(string a, string b, string c)
{
return "ok";
}

Но если я изменю URI на что-то другое скажем /method?a=1&b=2 тогда метод не будет работать.

Как я могу написать действие контроллера таким образом, чтобы оно получало строку любого типа после "?" подписать, а затем проанализировать как компоненты?

Ответы [ 3 ]

1 голос
/ 28 марта 2019

Вы можете передать значения по умолчанию параметру

/method?a=1&b=2&c=3

[Route("method")]
public string Get(string a= "", string b = "", string c = "")
{
return "ok";
}

Теперь это будет работать для

/method
/method?a=1
/method?b=2
/method?c=3

и все комбинации

1 голос
/ 28 марта 2019

Вы можете сделать его необязательным параметром, например

[Route("method")]
public string Get(string a, string b, string c = "")
{
  return "ok";
}
0 голосов
/ 28 марта 2019

Я думаю, что эта проблема была решена в некоторых выпусках MVC4, и вы должны определить значение по умолчанию для параметров, как показано ниже:

[Route("method")]
public string Get(string a = "", string b = "", string c = "")
{
    return "ok";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...