Dropdown-Liste besser als ViewBag oder Teil von Modell C # /. NET MVC4

8

Wahrscheinlich einfach, aber mir scheint etwas zu fehlen.

Zwei Modelle:

%Vor%

Wenn ich in die Hardware-Erstellungsansicht gehe, möchte ich aus einem Dropdown-Menü der Hersteller auswählen können, und wenn es übermittelt wird, sollte eine Beziehung zwischen dem Hardwareteil und dem ausgewählten Hersteller hergestellt werden.

Im Moment habe ich Folgendes verwendet, um eine selectList im Controller zu erstellen

%Vor%

Und dann in die Ansicht werfen:

%Vor%

Es scheint jedoch, als sollte es einen besseren Weg geben, dies zu tun - vielleicht ein ViewModel zu erstellen, das von Hardware mit einer SelectList typisierte Eigenschaft erbt?

    
Nick Brown 22.01.2013, 21:19
quelle

1 Antwort

17

Wenn Ihre Anwendung immer komplizierter wird, sehen Sie, dass Ihre MVC-Anwendung zu M-VM-VC wird. VM ist dedizierte ViewModels, die normalerweise all die Dinge hinzufügen, die Ihre UI-Ebene benötigt, um die Benutzeroberfläche zu generieren. p>

Ich persönlich würde in diesem Fall nicht mit der Vererbung gehen, weil Ihr ViewModel keine spezialisierte Version Ihres Modells ist. Es ist genau das, was Ihre Benutzeroberfläche zum Erstellen einer Ansicht benötigt (das liegt wirklich an Ihnen).

Mein ViewModel würde etwa so aussehen:

%Vor%

in der Ansicht:

%Vor%

Controller:

%Vor%     
Bassam Mehanni 22.01.2013, 21:30
quelle