Передача необязательного параметра в OData контроллер

Всем доброго времени суток! Есть метод в контроллере:

[HttpPost]
[ODataRoute("Sms(PhoneNumber={key}, StartDate={StartDate})/Sms.SendSmsCode")]
public async Task<IHttpActionResult> SendSmsCode([FromODataUri] string key, bool param=false)

Если обращаюсь к нему вот так - /Sms(PhoneNumber='123456789',StartDate=1900-01-01)/Sms.SendSmsCode?param=true

получаю ошибку: { "error":{ "code":"","message":"No HTTP resource was found that matches the request URI '/Sms(PhoneNumber='123456789',StartDate=1900-01-01)/Sms.SendSmsCode?param=true'.","innererror":{ "message":"No routing convention was found to select an action for the OData path with template '~/entityset/key/action'.","type":"","stacktrace":"" } } }

Если обращаюсь без указания ?param=true - ошибки нет и все работает.

Помогите понять в чем ошибка и как передать параметр?


Ответы (1 шт):

Автор решения: Nick Grava

решил проблему так:

public async Task<IHttpActionResult> SendSmsCode([FromODataUri] string key, [FromUri] bool param=false)
→ Ссылка