Ich mache eine MVC2 App, um Abrechnungsschemata zu verwalten. Diese Abrechnungsschemata können verschiedener Art sein, z. täglich, wöchentlich, monatlich usw. und alle Arten haben ihre spezifischen Eigenschaften. Meine Klassenstruktur sieht wie folgt aus:ASP.NET MVC2: ViewModel für eine polymorphe Klasse
public abstract class BillingScheme { /* basic billing scheme properties */ }
public class BillingSchemeMonthly : BillingScheme
{
public string SpecificMonths;
}
//etc. for other scheme types
ich rufen Sie eine Abrechnungsschema durch die Basisklasse die Abrechnungsschema-ID, und es gibt mir ein Objekt des richtigen Typs.
Die Eigenschaft SpecificMonths wird einem Datenbank-Varcharfeld zugeordnet, das eine Trennzeichenfolge von Monatszahlen enthält. Ich möchte dies in ein Array aufteilen, damit ich eine Liste von Kontrollkästchen erstellen kann, und ich würde dies am besten mit einer Fassadeneigenschaft in einem Ansichtsmodell tun. Ich könnte es direkt in der Ansicht tun, aber das scheint gegen das MVC-Muster zu gehen.
Das Problem ist, ich kann dieses Viewmodel nur für ein BillingSchemeMonthly erstellen, und ich kann ein BillingSchemeMonthly nicht zu einem BillingSchemeMonthlyViewModel. Ich möchte lieber keine Klon-Methode im View-Modell implementieren, da das gesamte Abrechnungsschema ziemlich groß ist und die Anzahl der Eigenschaften wachsen kann.
Vielen Dank im Voraus für jede Hilfe.
Das entspricht grundsätzlich der Implementierung einer Clone-Methode, oder? Ich hatte gehofft zu vermeiden, manuell alle Eigenschaften zu füllen. – Inertiaboogie