2009-05-21 8 views
2

Ich versuche herauszufinden, ob es in ASP.NET MVC einen eingebauten Weg gibt, um die Formularwerte zuzuweisen, die an die Eigenschaften des ViewModels zurückgegeben wurden ursprünglich an die View gesendet?ASP.NET MVC Einfügen von Formularwerten in ein ViewModel

Also denke ich entlang der Ideen, einige der Eigenschaften im ViewModel mit einem Attribut zu dekorieren und dann über das ViewModel zu reflektieren und diesen Namen zu verwenden, um Werte (und Coerce) aus dem Form [] -Objekt zu extrahieren.

Allerdings könnte ich mir vorstellen, dass so etwas schon eingebaut ist und das Rad hier nicht neu erfinden will. Das Problem, das ich zu lösen versuche, ist, dass ein Benutzer auf eine Schaltfläche in einem Formular klickt und der Server die Daten überprüft. Wenn es Fehler gibt, senden wir den Benutzer an das Formular zurück, indem wir das gleiche ViewModel zum Übertragen der Daten verwenden und füllen Sie die Werte zurück in das Formular, das der Benutzer ursprünglich eingegeben hat.

(Ja, ich mache auch Client-Seite JavaScript-Validierung mit diesem leichten zu machen, aber für die Sicherheit muß ich die Validierung auf dem Server wiederholen.)

Ideen?

Antwort

2

Sie können UpdateModel oder TryUpdateModel in Ihrem Controller verwenden.

Ich empfehle, eine der Überladungen zu verwenden, in denen Sie die Felder angeben, die aktualisiert werden sollen.

Dies wird ausführlich auf Seite 78 des Wrox Professional ASP.net ebook diskutiert

+0

Das ist genau das, was er braucht;) – womp

+0

BelowNinety - Sie sind golden (oder echapter!)! – Guy

0

Ich glaube nicht, MVC hat so etwas eingebaut, oder zumindest habe ich nichts gesehen. Es wäre schön, wenn dies auch viele andere MVC-Frameworks tun würden (zB Struts).

Verwandte Themen