WebAPI Put devuelve HTTPResponseMessage nulo
Tengo un requisito para implementar una funcionalidad de edición simple. Estoy usando el servicio webapi para actualizar mi objeto de prueba. Estoy llamando al método siguiente desde la solicitud de publicación del controlador.
Este es el controlador que llama a un método en llamadas de prueba que inturn llama al servicio put
public ActionResult TestEdit(Test test)
{
if (ModelState.IsValid)
{
// objTest is returned null
HttpResponseMessage objtest = TestDatabaseService.TestEdit(test.testID, test);
}
}
// Method which calls put service testDataService
public HttpResponseMessage TestEdit(int id, Test test)**
{
string uri = baseUri + "Test/" + id;
using (HttpClient httpClient = new HttpClient())
{
Task<HttpResponseMessage> response = httpClient.PutAsJsonAsync<Test>(uri, application);
return response.Result;
}
}
// The webapi service put method
public HttpResponseMessage PutTest(int id, Test test)
{
if (ModelState.IsValid && id == test).testID)
{
db.Entry(test)).State = EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
return Request.CreateResponse(HttpStatusCode.NotFound);
}
// The status code is set to indicate the save is success
return Request.CreateResponse(HttpStatusCode.OK);
}
else
{
// If save failed
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
. Aplicación pública TestCreate (prueba de prueba) {string uri = baseUri + "Test"; using (HttpClient httpClient = new HttpClient ()) {Task response = httpClient.PostAsJsonAsync (uri, prueba); return JsonConvert.DeserializeObjectAsync (response.Result.Content.ReadAsStringAsy nc (). Result) .Result; }}