Этот метод принимает этот тип 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
тогда метод не сработает.
Как я могу написать действие контроллера таким образом, чтобы оно ПОЛУЧАЛО любой тип строки после "?" подписать, а затем разобрать его как компоненты?





Вы можете сделать его необязательным параметром, например
[Route("method")]
public string Get(string a, string b, string c = "")
{
return "ok";
}
Вы можете передать значения по умолчанию в параметр
/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
и все комбинации
Я думаю, что эта проблема была решена в некоторых выпусках MVC4, и вы должны определить значение по умолчанию для параметров, как показано ниже:
[Route("method")]
public string Get(string a = "", string b = "", string c = "")
{
return "ok";
}