У меня есть действие WebAPI, которое выглядит так:
[Route("api/values/{id}")]
public async Task<HttpResponseMessage> Delete(string id, DateTimeOffset date) {
//do stuff
}
Но когда я вызываю это из экземпляра HttpClient, создавая URL-адрес, например:
string.Format("http://localhost:1234/api/values/1?date={0}", System.Net.WebUtility.UrlEncode(DateTimeOffset.Now.ToString()));
// -> "http://localhost:1234/api/values/1?date=17%2F02%2F2015+7%3A18%3A39+AM+%2B11%3A00"
Я получаю ответ от 400, говорящий, что параметр, не имеющий значения nullable date не существует.
Я также попытался добавить атрибут [FromUri] к параметру, но он по-прежнему не отображается. Если я изменю его на DateTimeOffset?, я вижу, что он оставлен как null и смотрит на Request.RequestUri.Query, это значение имеет значение, просто не отображаемое.
Наконец, я попытался не делать WebUtility.UrlEncode, и он не изменился.