JSON yoluyla Nesneleri bir Dizi MVC3 ASP.NET Post
JSON ile MVC3 için nesneleri bir dizi Yazabilmek için bir çözüm arıyorum.
Bu kadar çalışıyorum örnek kod: http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx
JS:
var data = { ItemList: [ {Str: 'hi', Enabled: true} ], X: 1, Y: 2 };
$.ajax({
url: '/list/save',
data: JSON.stringify(data),
success: success,
error: error,
type: 'POST',
contentType: 'application/json, charset=utf-8',
dataType: 'json'
});
ListViewModel.cs:
public class ListViewModel
{
public List<ItemViewModel> ItemList { get; set; }
public float X { get; set; }
public float Y { get; set; }
}
İtemViewModel.cs:
public class ItemViewModel
{
public string Str; // originally posted with: { get; set; }
public bool Enabled; // originally posted with: { get; set; }
}
ListController.cs:
public ActionResult Save(ListViewModel list)
{
// Do something
}
Bu yazının sonucu:
liste, bir ListViewModel ayarlanır
X ve Y özelliklerini ayarlayın
Alttaki İtemList özelliği
Bu İtemList gerektiği gibi bir madde içerir
Bu İtemList madde başlatılmamış. Str null ve false sağladı.
Başka bir deyişle, bu MVC3 model bağlama ne olsun
list.X == 1
list.Y == 2
list.ItemList != null
list.ItemList.Count == 1
list.ItemList[0] != null
list.ItemList[0].Str == null
MVC3 bu JsonValueProvider karmaşık nesneler için çalışmıyor gibi görünüyor. Bu iş nasıl gidilir? Mevcut MVC3 bu JsonValueProvider değiştirmek ve düzeltmek gerekiyor mu? Eğer öyleyse, nasıl bunu getir ve yerine MVC3 bir proje yapabilirim?
Zaten boşuna takip ettik StackOverflow ile ilgili
Asp.net Mvc Ajax Json (post Array) MVC2 ve eski form tabanlı kodlama kullanır - bu yaklaşım nesnelerin bir dizi içeren bir nesne ile başarısız (JQuery düzgün kodlamak için başarısız).
Post an array of complex objects with JSON, JQuery to ASP.NET MVC Controller Kullandığı Denetleyicisi yerine el ile kendisi, çerçeve yararlanarak yerine de-serialize olan düz bir dize alır kaçınalım kesmek.
MVC3 RC2 JSON Post Binding not working correctly ... İçerik-türü onun sahip olduğu - benim kod ayarlayın.
How to post an array of complex objects with JSON, JQuery to ASP.NET MVC Controller Bu zavallı adam bir JsonFilter yazmak için sadece bir dizi ayrıştırmak gerekiyordu. Başka bir kaçınmayı tercih ederim hack.
Bunu nasıl gerçekleştiririm?
CEVAP
{ get; set; }
Bu ek olarak JSON Bağlama Desteği için koşullar:
- Bu MVC 3 ASP.NET yeni özellik (“JavaScript and AJAX Improvements“). Bakın
- JSON nesne (‘’,‘’,‘’,‘’) ViewModel nesnenin özellikleri aynı olmalıdır sağladı. Str Y X dizeleri
- ViewModel nesnenin özellikleri
{ get; set; }
yöntem olmalıdır. - “İstek” application/json olarak İçerik Türünü belirtmeniz gerekir
- Eğer hala çalışıyor değilse, geçerli olduğundan emin olmak için JSON dize kontrol edin.
my post daha fazla bilgi edinin.
Bu yardımcı olur umarım!
Nasıl, MVC Denetleyicisi ASP.NET JSON ...
/ İşlem () iç içe erişim nesneleri, Di...
Özel dizi sıralamak için nasıl Swift i...
İşleme nesneleri bir Ajax çağrısından ...
Dönüştürme nesneleri Jackson ile JSON ...