2010-04-08 23 views
5

IJSON nesnesini MVC eylem parametrelerine nasıl geçirirsiniz?

$.ajax({ 
    url: "target.aspx", 
    data: {"id":1, "name":"stackoverflow", "parameter2":false, "parameter3":true}, 
    success: handleResponse 
}); 

Fiddler zaman JSON nesnesi görebileceğiniz JQueries veri parametresi olarak JSON kullanarak ajax metot kullanılarak eylemimle

public JsonResult Action(int id, string name, bool parameter2, bool parameter3) 
{ 
    //... 
} 

için

{"id":1, "name":"stackoverflow", "parameter2":false, "parameter3":true} 

geçmek istiyorum gönderiliyor, ancak işlemlerim parametrelerine bağlı değiller. Onları parametrelere bağlamalarını nasıl sağlayabilirim?

Değerlerimi içeren eylem üzerinde bir nesneyi bağlamak istemiyorum, yani İstemiyorum Eylem (MyCustomObjectToAcceptParameters json) Her JSON özelliğinin eylemin her parametresine bağlanmasını istiyorum.

Parametrelerimi querystring olarak geçersem her şey çalışır, ancak JSON bir grup querystring değeri oluşturmak/sürdürmek için çok daha kolay olduğundan jsonumu alıp eylemimin her parametresine bağlamak için bir şey isterim. Karmaşık türleri veri elemanları ile, sadece basit dizeleri, mürekkepleri ve boolelarla bağlama ihtiyacım yok.

+0

Geçerli jQuery çağrı kodunuzu kaydeder misiniz? – tzaman

+0

Değişken isimlerden alıntılar olmadan denediniz mi? @ Ryan'ın cevabı. İstediğinizi yapmalı (doğru anlıyorsam) – SlackerCoder

cevap

2

Görüyorum ki @womp cevabımı geri bildirimime dayanarak çözdü. JSON nesnesini veri parametresi olarak geçirebilirsiniz. Örnekler için bkz. here.

$.ajax({ 
    url: "target.aspx", 
    data: {parameter1: true, parameter2: false, parameter3: true}, 
    success: handleResponse 
}); 
+0

Bu yaptığınız şey buysa, parametrelerin gerçekten istekte olduğunu doğrulamak için Firebug'ı kullanabilir misiniz? Veya denetleyicinizde bir kesme noktası ayarlayabilir ve HttpContext dosyasını kontrol edebilirsiniz. – Ryan

+0

Parametrelerimi nasıl geçiyorum, ancak bunları eylemlerim parametrelerine bağlamalarını nasıl sağlayabilirim (eylem parametrelerinin bir nesnesi değil); – TimTam

+1

Varsayılan model bağlayıcı kullanıyor musunuz? Bu sadece çalışmalı. – Ryan

0

Bağlayıcı/filtre mükemmeldir. < -> business class özelliklerinin eşleştirmesinde json adlar üzerinde daha iyi denetim için sınıftaki [DataMember] özniteliğini ve [DataContract] sınıfını kullanın. Bakınız DataContractJsonSerializer.

+0

değil Bu, bir nesnenin özellikleri için bağlayıcı gibi görünüyor. Eylemin parametrelerini bağlamak istiyorum (bu yüzden başka bir nesne oluşturmama gerek yok) – TimTam

İlgili konular