2 Stimmen

Anzeigen von Klassen/Unterklassen-Objekten

Schritt 2 auf meiner heutigen Suche ist die Erstellung von ASP.NET MVC 3 mit Razor-Ansichten, die in der Lage sind, Klassen-Subklassen-Objekte zu handhaben. Ich möchte also ein Formular/eine Seite erstellen, das/die Person -> Frau oder Person -> Mann basierend auf der Auswahl eines DropDownList (Mann/Frau) handhaben kann.

Die Daten sind in der Datenbank gespeichert und werden mit EF 4.1 Code First abgerufen. Das funktioniert einwandfrei. Wenn ich also eine Frau speichere und mit context.Person.Where(p => p.Id == 1) abrufe, erhalte ich ein Objekt Frau.

Das Problem, das ich habe, ist, dass ich nicht weiß, was ich als Modell in der Ansicht verwenden soll. Person wäre am offensichtlichsten, aber wie könnte ich dann die Eigenschaften von Frau/Mann anzeigen/aufrufen/speichern? Und im Falle eines Erstellens ist der Typ nicht im Voraus bekannt (serverseitig). Der Benutzer kann entweder eine Frau/einen Mann auswählen und erwartet, die spezifischen Eigenschaften einer Frau oder eines Mannes auszufüllen.

Siehe diese Frage für das Modell.

0 Stimmen

Es gibt zwei Ansätze, die ich sehe: 1) Sie liefern eine HTML-Seite, die nicht zusätzliche Eigenschaften herunterlädt, und 2) Sie werden zusätzliche Eigenschaften über eine AJAX-Anfrage von Ihrer HTML-Seite herunterladen. Im Fall 1 benötigen Sie eine spezielle Art von Modell, das ein Superset von sowohl Mann als auch Frau Eigenschaften ist. Im Fall 2 müssen separate Modelle für die 'Initiale' Ansicht erstellt werden (das Modell wird Person sein), und für die über AJAX geladenen Eigenschaften (die Modelle werden Mann und Frau sein).

0voto

Robert Corvus Punkte 1954

Eine Möglichkeit wäre es, eine separate Teilansicht für Mann und Frau zu erstellen und dann beide Ansichten in Divs auf Ihrer Seite zu laden. Verwenden Sie dann jQuery, um die Divs auszublenden/einzublenden, nachdem sich die Auswahl in der Dropdown-Liste geändert hat.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X