Ciao a tutti ho una classe di base denominata veicolo e ho tutte le proprietà comuni a tutti i veicoli in là e non ho più classi derivate chiamati auto, jeep che derivano da veicolo e aggiungere più proprietàASP.NET MVC 3.0 Associazione del modello con classi Base e Derivate?
Es:
public class Vehicle
{
public int Color { get; set; }
public double Cost { get; set; }
}
public class Car : Vehicle
{
public SelectListItem Option { get; set; }
}
ho una classe pagina in cui ho una lista di veicoli del genere
public class Page
{
public List<Vehicle> vehicles { get; set; }
}
la mia opinione è fortemente tipi alla classe pagina in modo a mio avviso che sto loop su tutti i veicoli da mostrare a paginain questo modo, questo codice è all'interno @using (Html.BeginForm()) quindi abbiamo palo selezioni dell'utente
for(int i=0;i<Model.Vehicles.Count;i++)
{
<div id="Question">
@{
@Html.EditorFor(m => m.Vehicle[i], VehicleConstants.GetTemplateName(Model.Questions[i]));
}
<br />
</div>
}
Sto usando un editor di modelli per ogni tipo di veicolo in modo che il VehicleConstants.GetTemplateName funzione di chiamata restituisce solo il nome del modello da utilizzare in base al tipo di veicolo
Questo modello scrive semplicemente le proprietà della classe auto o classe di Jeep (classe derivata + classe base)
il problema che sto avendo è quando la forma è pubblicato indietro Posso accedere solo alle proprietà di Base class Vehicle nel mio controller Non riesco a ottenere il valore per le proprietà di auto di sottoclasse o Jeep.
[HttpPost]
public string ReadPost(Page page)
{
}
Qual è il modo migliore per ottenere questi valori autobinded quando il modulo viene inviato indietro?
La creazione di Custom Binder Class è la mia unica opzione? È così possibile che qualcuno mi fornisca del codice di esempio su come farlo? Qualsiasi aiuto molto apprezzato.