Letzte Nacht habe ich ein Modell erstellt mit Feldern von Arrays von Objekten, die Eigenschaften innerhalb benötigt hat. Die Modellbindung funktionierte bei der GET-Anforderung korrekt, aber wenn sie zurückgeschickt wird, kommt alles wieder zurück, um die Felder dieser Arrays zu modellieren. Zunächst überprüfte ich die Syntax, fügte diesen Objekten IDs hinzu, aber keine funktionierte. Modell war:MVC Posted Array von Objekten Eigenschaft ist Null aufgrund von Feld, nicht Eigenschaft
public class RateEditVM
{
[Required(ErrorMessage = "IDF boş geçilemez!")]
public int? FK_ITH_IDFID { get; set; }
[Required(ErrorMessage = "Mal Bedeli boş geçilemez!")]
public decimal? GoodsPrice { get; set; }
[Required(ErrorMessage = "İlk kur boş geçilemez!")]
public decimal? GGBRate { get; set; }
[Required(ErrorMessage = "Mal Bedeli (TL) boş geçilemez!")]
public decimal? GoodsPriceTL { get; set; }
public RateValueHolder[] ShippingExpenseValues ;
public RateValueHolder[] InsuranceExpenseValues;
public RateValueHolder[] BankExpenseValues ;
public RateValueHolder[] CustomsExpenseValues;
public RateValueHolder[] LocalExpenseValues;
[Required(ErrorMessage = "Diğer Masraflar boş geçilemez!")]
public decimal? OtherExpense { get; set; }
[Required(ErrorMessage = "Toplam Masraflar boş geçilemez!")]
public decimal? TotalExpense { get; set; }
[Required(ErrorMessage = "Toplam Tutar boş geçilemez!")]
public decimal? Total { get; set; }
[Required(ErrorMessage = "Son Kur boş geçilemez!")]
public decimal? RateCalculated { get; set; }
}
und diese Objekte war ValueHolders:
public class RateValueHolder
{
[Required(ErrorMessage = "Boş geçilemez!")]
public decimal? Value { get; set; }
public int ID { get; set; }
public string Description { get; set; }
}
Es ist kein Fehler. Es ist von Entwurf. –
Also musste ich es selbst finden. Es ist meiner Meinung nach ein schlechtes Design. Wenn ich der Designer wäre, würde ich wahrscheinlich eine Ausnahme sagen, dass "Ihr Modell hat {0} Feld, aber es sollte eine Eigenschaft sein, um zu sehen" –
Schreiben Sie Ihre eigenen benutzerdefinierten 'ModelBinder' (Sie können alles tun, was Sie wollen) –