У меня есть действие 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
, и он не изменился.