Шаблон маршрута не может начинаться с символа "/" или> "~" и не может содержать "?" персонаж
Я получаю исключение со следующим атрибутом маршрута:
[Route("{id}?action=decline")]
Исключение:
Исключение типа "System.ArgumentException" произошло в System.Web.Http.dll, но не было обработано в коде пользователя
Дополнительная информация: шаблон маршрута не может начинаться с символа "/" или "~" и не может содержать "?" персонаж.
Почему это не разрешено?
1 ответ
Я думаю, что это не разрешено, потому что строка запроса не является частью URI-Path. (См. RFC3986 Раздел 3.3 Путь, он не включает часть запроса)
Но мне не трудно доказать, что: Возможно, эти ссылки помогут вам:
Маршрутизация на основе имени параметра строки запроса
QueryString с MVC 5 AttributeRouting в веб-API 2
Маршрутизация атрибутов в ASP.NET Web API 2
Вы можете сделать это, и вы будете иметь доступ к обоим id
а также action
:
[Route("{id}")]
public IHttpActionResult YourMethod([FromUri] string action)