У меня есть простой метод контроллера, подобный этому:
public IEnumerable<IEntity> GetEntities(ParamsModel args)
{
//set break point here to examine the args
return null;
}
А вот мой ParamsModel
:
public class ParamsModel {
public string Test;
}
А вот метод моего клиента для отправки запроса на получение:
//_client here is an instance of RestClient
public async Task<IEnumerable<T>> GetEntitiesAsync()
{
var request = new RestRequest("somePath");
var o = new {
Test = "OK"
};
request.AddJsonBody(o);
return await _client.GetAsync<List<T>>(request);
}
После запуска метода GetEntitiesAsync
достигается точка останова (в методе контроллера).Однако args
является нулем, правда?
Я также попробовал следующее:
public async Task<IEnumerable<T>> GetEntitiesAsync()
{
var request = new RestRequest("somePath");
request.AddParameter("Test", "OK");
return await _client.GetAsync<List<T>>(request);
}
Однако это не сработало (args
равно нулю в методе контроллера).Если я изменю метод контроллера на что-то вроде этого (и использую клиентский код, как показано выше), я вижу, что единственный простой аргумент строки имеет значение, анализируемое OK ("OK") внутри метода контроллера:
public IEnumerable<IEntity> GetEntities(string Test)
{
//here we can see that Test has value of "OK"
return null;
}
На самом деле я не понимаю, что не так с моим кодом.На самом деле я работал с RestSharp
по крайней мере год назад, но теперь, похоже, появились новые методы (такие как GetAsync
, как я использовал в своем коде), как и раньше, я использовал Execute
и ExecuteAsync
.
Не могли бы вы заметить здесь что-то не так?Спасибо!
PS: я пользуюсь RestSharp 106.6.7