MVC3'te, model iç içe nesneler varsa, javascript nesnelerini modellere otomatik olarak bağlamak mümkün mü? Ben "Koordinatlar" dışında benim denetleyicisi her şeyi aşağıdaki JSON yayınladığınızdaASP.NET MVC3 JSON Yuvalanmış sınıfla model bağlama
public class Tweet
{
public Tweet()
{
Coordinates = new Geo();
}
public string Id { get; set; }
public string User { get; set; }
public DateTime Created { get; set; }
public string Text { get; set; }
public Geo Coordinates { get; set; }
}
public class Geo {
public Geo(){}
public Geo(double? lat, double? lng)
{
this.Latitude = lat;
this.Longitude = lng;
}
public double? Latitude { get; set; }
public double? Longitude { get; set; }
public bool HasValue
{
get
{
return (Latitude != null || Longitude != null);
}
}
}
başarıyla bağlanır:
[HttpPost]
public JsonResult ReTweet(Tweet tweet)
{
//do some stuff
}
:
{"Text":"test","Id":"testid","User":"testuser","Created":"","Coordinates":{"Latitude":57.69679752892457,"Longitude":11.982091465576104}}
Bu benim denetleyicisi eylem neye benzediği Benim modeli şöyle
Burada bir şey eksik mi yoksa yeni otomatik bağlama özelliği yalnızca ilkel nesneleri destekliyor mu?
NULL çıkarılması gerçekten işe yaramaz ancak boş değerleri gönderdiğinden geçerli bir lat/lng değeriyle sonuçlanacağından, modeli bozar. Json'umu elimden çıkarmak için tek yol sanırım. – jul
Sadece değerleri tırnaklara koyduğumda null özelliklerle ince bağladığını fark ettim. Elbette bu bir böcek olmalı? – jul
@jul: Haklısınız. İşleminizi özel bir model ciltleyici (ActionResult InsertTweet ([ModelBinder (typeof (TweetModelBinder))] Modeller.Tweet tweet ile) kullanarak bağlamaya çalışırken bazı denemeler yaptım. DictionaryValueProvider. – LeftyX