2012-04-13 3 views
0

Ich habe eine Modelleigenschaft enum view, die ich in der CREATE-Ansicht ausblenden, aber in der LIST/Index-Ansicht anzeigen möchte. Das Enum ist offen, gescheitert, erfolgreich.HiddenInput (DisplayValue) muss in der CREATE-Ansicht sein False, aber in der LIST-Ansicht true

  • Für die CREATE-Ansicht sollte der Editor/Steuerelement nicht sichtbar sein.
  • für die Listenansicht der Editor/Steuerung ein wählbarer Combobox

das irgendwie mit dem HiddenInput Attribut kann getan werden sollte?

Wenn dies nicht möglich ist, dann möchte ich es zumindest in beiden Ansichten sichtbar machen, aber deaktiviert/ein anderes Steuerelement (Label statt Combobox).

Ich verwende asp.net MVC 4.0

Antwort

1

Eigentlich sollten Sie verschiedene Ansichtsmodelle werden. Denken Sie daran: Das erste Wort von Ansicht Modell ist Ansicht bedeutet, dass Sie ein Ansichtsmodell pro Ansicht definieren. So haben Sie eine CreateViewModel, die für die Create Ansicht ohne die Enum-Eigenschaft in Frage und eine ListViewModel mit der Enum-Eigenschaft verwendet werden, die in der Index Ansicht verwendet werden.

Wenn ich Code-Überprüfungen durchführe, sehe ich viele Entwickler, die versuchen, die gleichen Modelle über verschiedene Ansichten wiederzuverwenden und mit schrecklicher Logik zu enden, weil diese Modelle einfach nicht für diese Ansichten angepasst sind. Sie versuchen sich zu verstecken, sie versuchen, Wenns und Zeug zu schreiben, um eine Validierung durchzuführen, enden normalerweise in einem Wartungsalbtraum.

+0

In diesem Fall stimme ich dir zu. Sehen Sie meine Frage hier könnte für Sie interessant sein! http://stackoverflow.com/questions/10146405/why-do-i-still-need-business-models-in-asp-net-mvc-when-a-viewmodel-does-all-the – Pascal

+0

eine Sache kam noch In meinen Augen: Wenn ich ein ListViewModel AND CreateViewModel für mein XXX-Domain-Objekt verwende, dann habe ich viele doppelte Eigenschaften in beiden ViewModels. – Pascal

Verwandte Themen