WebAPI Put gibt HTTPResponseMessage null zurück
Ich muss eine einfache Bearbeitungsfunktion implementieren. Ich verwende den Webapi-Dienst, um mein Testobjekt zu aktualisieren. Ich rufe die folgende Methode von der Controller-Post-Anfrage auf.
Dies ist der Controller, der eine Methode in Testaufrufen aufruft, die den Put-Dienst aufrufen.
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);
}
}
. öffentliche Anwendung TestCreate (Test test) {string uri = baseUri + "Test"; using (HttpClient httpClient = new HttpClient ()) {Task response = httpClient.PostAsJsonAsync (uri, test); return JsonConvert.DeserializeObjectAsync (response.Result.Content.ReadAsStringAsy nc (). Result) .Result; }}