Я пытаюсь выучить формы ксамарина. У меня есть существующая база данных, к которой я хотел получить доступ из приложения. Здесь я хочу что-то обновить, используя web api / REST, я следовал этому руководству по использованию REST. К сожалению, это не работает, и я даже не знаю почему.
Как правильно использовать PUT для обновления чего-либо и что здесь не так?
Класс веб-API:
class GuestAcc
{
public string RefCode { get; set; }
public double Price { get; set; }
}
Xamarin Модель:
public class GuestAcc
{
public string RefCode { get; set; }
public double Price { get; set; }
}
GuestAccountsController:
[ResponseType(typeof(void))]
public async Task<IHttpActionResult> UpdateBalance(GuestAcc guestAcc)
{
var guestAccounts = db.GuestAccounts.First(x => x.ReferenceCode == guestAcc.RefCode);
guestAccounts.Balance = guestAccounts.Balance - guestAcc.Price;
db.Entry(guestAccounts).State = EntityState.Modified;
await db.SaveChangesAsync();
return StatusCode(HttpStatusCode.NoContent);
}
Форма Xamarin:
private async void btn_proceed_clicked(object sender, EventArgs e)
{
GuestAcc guestAcc = new GuestAcc();
guestAcc.Price = 125;
guestAcc.RefCode = "user123";
var guestAccountURL = "http://192.168.8.100:56750/api/UpdateBalance/";
var uri_guestAccount = new Uri(string.Format(guestAccountURL, string.Empty));
var json = JsonConvert.SerializeObject(guestAcc);
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage response = null;
response = await client.PutAsync(uri_guestAccount, content);
if (response.IsSuccessStatusCode)
{
await DisplayAlert("Notice", "Success", "Ok");
}
}