Mam taką metodę działania, jak poniżej.DefaultModelBinder i kolekcja dziedziczonych obiektów
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Form newForm)
{
...
}
Mam model z następujących klas, które chciałbym załadować dane z danych ajax JSON.
public class Form
{
public string title { get; set; }
public List<FormElement> Controls { get; set; }
}
public class FormElement
{
public string ControlType { get; set; }
public string FieldSize { get; set; }
}
public class TextBox : FormElement
{
public string DefaultValue { get; set; }
}
public class Combo : FormElement
{
public string SelectedValue { get; set; }
}
Oto dane JSON.
Program DefaultModelBinder obsługuje strukturę obiektów zagnieżdżonych, ale nie może rozstrzygać różnych podklas.
Jaki byłby najlepszy sposób na załadowanie listy do odpowiednich podklas?
Czy możesz wyjaśnić bardziej szczegółowo, co próbujesz osiągnąć tutaj? Wygląda na to, że próbujesz powiązać cały formularz z modelem podglądu zamiast tylko wartościami, które przenosi. Rozumiem, że generowanie formularzy jest dynamiczne w oparciu o dane JSON, które udostępnia backend, ale mam trudności ze zrozumieniem, dlaczego chciałbyś przekazać backendowi samą strukturę zamiast wartości tylko wtedy, gdy użytkownik wypełni formularz. –
Nie generuję dynamicznie formularza. Akceptuję jsona, który reprezentuje strukturę formularza, który zostanie zapisany później w systemie. – Thurein