Ich habe eine Website, wo ich fluentNhibernate und Asp.net MVC verwende. Ich habe eine Bearbeitungsansicht, mit der Benutzer 8 der 10 Eigenschaften für diesen Datensatz (Objekt) bearbeiten können. Wenn Sie das Formular und die Bindung des Modells senden, werden die zwei nicht bearbeitbaren Felder im Ansichtsmodell als leere Zeichenfolgen oder als standardmäßige DateTime-Werte zurückgegeben, abhängig vom Typ der Eigenschaft.Wie können Sie Werte in MVC ignorieren/beibehalten, wenn Ihr Ansichtsmodell nicht so viele Felder enthält wie Ihr Domänenmodell?
Da ich auch AutoMapper verwende, um mein Ansichtsmodell meiner Domäneneinheit zuzuordnen, kann ich nicht einfach eine neue Kopie meines Objekts aus der Datenbank laden und die 2 fehlenden Eigenschaften manuell festlegen. Was ist der beste Weg, diese Felder zu erhalten, die ich nicht bearbeiten möchte?
Eine Möglichkeit, die funktioniert, besteht darin, die Werte in ausgeblendeten Eingabefeldern in meiner Ansicht beizubehalten. Das funktioniert, fühlt sich aber eklig an. Ich freue mich über Empfehlungen. Gibt es in meinem AutoMapper eine Möglichkeit, diese gewünschte Funktionalität zu konfigurieren?
UPDATE: Ok, also ich denke, ich bin nicht die Felder zu ignorieren versuchen, ich versuche, um sicherzustellen, dass ich nicht null oder eine leere Zeichenfolge Werte anhalten kann. Das Ignorieren der Felder in AutoMapper macht genau das, sie werden ignoriert und sind null, wenn ich versuche, sie vor Saved in meinem Repository abzubilden.
Gibt es einen Grund, warum die nicht editierbaren Felder sogar Teil des View-Modells sind? – mxmissile
Derzeit sind sie nicht Teil des Ansichtsmodells, das anscheinend Teil des Problems ist. Die Felder sind 'AddedBy' und 'DateAdded'. Sobald dieses Objekt erstellt wurde, sollten diese niemals geändert werden. Ich habe versucht, eine Bearbeitungsansicht zu verkabeln, ohne diese Daten zu verlieren. Mit Automapper Nulls Daten, wenn ich von meinem Ansichtsmodell zu meinem Modell abbilde – shanabus