Dies ist ein häufiges Problem, dass viele Menschen in dem asp.net MVC-Framework zu verpassen. Nicht nur der Unterschied in den Helfern wie HiddenFor
, DisplayFor
, TextBoxFor
- aber wie genau stellt das Framework automatisch das Sammeln und Validieren dieser Eingaben ein. Die Magie ist alles mit HTML5-Daten-Attribute getan. Sie werden bemerken, wenn Sie das generierte Input-Tag betrachten, dass es einige zusätzliche Eigenschaften in Form von data-val
, data-val-required
geben wird, und vielleicht einige zusätzliche Dateneigenschaften für Typen, zum Beispiel Numerik wäre data-val-number
.
Mit diesen Datenattributen kann die jQuery-Erweiterung jquery.validate.unobtrusive.js
das DOM analysieren und anschließend entscheiden, welche Felder validiert oder Fehlermeldungen generiert werden.
Die tatsächliche Sammlung der gebuchten Daten spiegelt sich in der name
-Eigenschaft wider. Dies sollte dem Modell in der C# oder vb [HttpPost]
Methode entsprechen.
Verwenden Sie HiddenFor
, wenn Sie gepostete Daten bereitstellen möchten, die der Benutzer nicht beachten muss.
Verwenden Sie DisplayFor
, wenn Sie Datensätze anzeigen, aber nicht bearbeiten möchten.
Verwenden Sie TextBoxFor
, wenn Sie Benutzereingaben zulassen oder dem Benutzer das Bearbeiten eines Felds erlauben möchten.
EDIT
"the purpose of this view is to enable the user to view the data before submitting it to the database. Any ideas how I can achieve this?"
Man könnte dies mit einem Duo von HiddenFor
und DisplayFor
erreichen. Verwenden Sie HiddenFor
, um die Werte zur Veröffentlichung bereit zu haben, und DisplayFor
, um diese Werte anzuzeigen.
Ich muss die Felder als "Etiketten" anzeigen. Deshalb; Der Zweck dieser Ansicht besteht darin, dem Benutzer zu ermöglichen, die Daten vor dem Senden an die Datenbank anzuzeigen. Irgendwelche Ideen, wie ich das erreichen kann? – Jacques