SORU
25 Ocak 2011, Salı


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
21 Mart 2011, PAZARTESİ


{ get; set; } Bu ek olarak JSON Bağlama Desteği için koşullar:

  1. Bu MVC 3 ASP.NET yeni özellik (“JavaScript and AJAX Improvements“). Bakın
  2. JSON nesne (‘’,‘’,‘’,‘’) ViewModel nesnenin özellikleri aynı olmalıdır sağladı. Str Y X dizeleri
  3. ViewModel nesnenin özellikleri { get; set; } yöntem olmalıdır.
  4. “İstek” application/json olarak İçerik Türünü belirtmeniz gerekir
  5. 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!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • picster

    picster

    20 NİSAN 2006
  • Ryan Ha

    Ryan Ha

    9 NİSAN 2006