2009-07-18 17 views
1

In meinem Webanwendungs-Framework (zZ WebForms) habe ich ein Steuerelement, das sich wie ein klassisches propertygrid verhält. Es wird mit einer Objekt-ID (Datenbankschlüssel) initialisiert und liest dann Metadaten, um den Typ des Objekts und die Attribute des Objekts zu bestimmen. Es zeigt die Attribute, String-Attribute als Textfelder, Bool-Attribute als Kontrollkästchen, Enum-Attribute als Dropdown-Listen an. Bei der Übergabe der Seite gibt es eine Methode des Steuerelements ctrl.SaveData(), die die geänderten Attributwerte in die Datenbank zurückspeichert.MVC wiederverwendbares propertygrid

Das WebForm-Steuerelementbaum- und -Ereignismodell unterstützt diesen Ansatz sehr gut. Jetzt frage ich mich, ob es möglich ist, eine ähnliche Lösung für ASP.NET MVC zu erreichen. Das Hauptziel ist, eine generische, wiederverwendbare Komponente zu haben, die in einer Vielzahl von Situationen mit wenig Aufwand angewendet werden kann. Darüber hinaus muss die Lösung flexibel genug sein, um mehrere Instanzen der Komponente für mehrere Objekte auf einer einzelnen Seite zu platzieren. Hier halfen auch die automatisch generierten WebForms HTML-IDs.

Ich bin sehr neugierig auf Ihre Ideen! Vielen Dank für die Antwort!

Antwort

1

Sie können diesen Effekt mit einem benutzerdefinierten ViewModel erzielen, das genügend Metadaten enthält, um das bearbeitete/gespeicherte Objekt zu identifizieren. Sie würden dies in Verbindung mit einer Teilansicht verwenden, die das ViewModel rendert. Die Hauptseite würde die Metadaten im ViewModel verwenden, um den Post entweder auf eine bestimmte Controller-Aktion zu richten, um das bestimmte Objekt zu speichern, oder die Metadaten an eine gemeinsame Aktion zurückzuleiten (möglicherweise als verborgene Eingaben), damit diese Aktion das richtige auswählen kann Tabelle, in der die Daten beibehalten werden.

Persönlich würde ich diesen Ansatz nicht nehmen. Mein Gefühl ist, dass je allgemeiner Sie eine Ansicht/Handlung machen, desto mehr Arbeit wird es, um sie für verschiedene Umstände anzupassen. Ich habe ähnliche Dinge zum Betrachten von Objektgruppen gemacht, aber für eine Detailansicht oder Bearbeitung arbeite ich gerne mit spezifischeren Modellen und Ansichten.

Verwandte Themen