Web api ve dbContext ile asp.net mvc 3'te basit bir yapılacaklar listesi uygulaması oluşturdum. (istemci için omurga ve requirejs ile) Her şey iyi çalışıyor, ancak yaptığım gibi bir todo öğesinin işaretini veya işaretini kaldırırsam, tüm modeli sunucuya göndermem gerektiğinden rahatsızlık duyuyorum. Veri gönderirken sadece "biten" alanını göndermek istiyorum.asp.net web api ile kısmi güncelleştirme
JSON.NET'i varsayılan Serializer olarak kullanmak için JsonNetFormatter'ı kullanıyorum (burada açıklanmaktadır: http://blogs.msdn.com/b/henrikn/archive/2012/02/18/using-json-net-with-asp-net-web-api.aspx). olması gerektiği,
Şu anda bu O
{"content":"Pick up milk","done":false,"id":10}
Kapalı Tabii bu işleri json veri olarak bu alan modeli
public HttpResponseMessage Put(Todo todo)
{
_db.Entry(todo).State = EntityState.Modified;
_db.SaveChanges();
return new HttpResponseMessage(HttpStatusCode.NoContent);
}
güncellemek için benim API kontrolör yöntemdir, ancak bütün modelin güncelliyor sadece 1 alanı güncelle. Sadece değiştirilen alanları tarayıcıdan sunucuya gönderebilirim ancak web api yönteminin nasıl görüneceğinden emin değilim. FormCollection ile bir şeyler yapmayı düşünüyordum, ancak bu form formları doğrudan FormCollection türüne serileştirmeye çalışıyormuş gibi görünen web api ile çalışmıyor gibi görünüyor, bu hatayı alıyorum.
Modelden bir veya daha fazla alan için kısmi bir güncelleştirmeyi web api'mden nasıl gönderebilirim? Sadece güncellenmiş alanları sunucuya göndermek istiyorum ve oradan sadece bu alanları veritabanına güncellemek istiyorum. Kesinlikle veritabanını güncellemeden önce sorgulamak istemiyorum. Sen veritabanından orijinal nesneyi sorgulamak gerekir
numaralı soruya yanıt vermiyor. Bir alanı null olarak ayarlamak isterseniz? –
Sıfır değerinin gönderen tarafından ayarlanıp ayarlanmadığını veya bir alanın atlanmasıyla ayarlanmış olup olmadığını anlayamazsınız. Bu durumda, bunun yerine PATCH fiilini kullanmanızı tavsiye ederim. – elolos