Wie kann ich einen Standardwert in meinen Editorboxen einstellen, so dass, falls ich nichts in die Box schreibe, kein Nullwert gesendet wird.
%Vor%Oder wenn ich zu:
ändere %Vor%Um einen Standardwert in einem Feld anzuzeigen, müssen Sie die Eigenschaft 'Value' in htmlAttributes wie in diesem Beispiel zuweisen:
%Vor%Stellen Sie sicher, dass der Value in Großbuchstaben ist.
Auf diese Weise vergeben Sie nur einen Standardwert für das HTML-Feld und nicht für das Modell.
Das Zuweisen von Standardwerten im Modell erzwingt das Erstellen des Modellobjekts und das Einrichten von Standardwerten für Felder, die keine Nullwerte zulassen, z. B. Datumsangaben, die dazu führen, dass auf der Seite "Ärger" angezeigt wird 1/1/1001 00:00:00 Werte in den Datetime-Feldern, die Sie im Rest des Modells haben könnten.
Der einfachste Weg besteht darin, Eigenschaften in Ihrem Modellkonstruktor zu initialisieren:
%Vor% Und wenn Sie es an die Ansicht senden möchten, zum Beispiel in PersonController.Create
action-method:
Das ist es. Denken Sie daran, dass Sie eine neue Instanz Ihres Modells erstellen und an die Ansicht übergeben müssen, um die Standardwerte zu verwenden. Da die mit dieser Aktionsmethode verknüpfte Ansicht eine PersonModel
-Instanz erwartet, aber wenn Sie die create-Methode wie folgt verwenden:
Die Ansicht hat nichts (ich meine null
), also sind Ihre Standardwerte nicht wirklich vorhanden.
Aber wenn Sie dies für komplizierte Zwecke tun möchten, z.B. Wenn Sie den Standardwert als Wasserzeichen verwenden oder wie @JTM besagt, dass die Endbenutzer keine Standardwerte sehen sollen, haben Sie andere Lösungen. Bitte lassen Sie mich Ihren Zweck wissen.
Wie wäre es, wenn Sie Ihr Modell so definieren, dass es für seine Eigenschaft "somthing" den Wert "Standardwert" hat? In diesem Fall müssen Sie nichts Besonderes tun. Wenn dies nicht zufriedenstellend ist (z. B. wenn Sie nicht möchten, dass der Benutzer den "Standardwert" auf dem Bildschirm sieht), können Sie für dieses Modell einen benutzerdefinierten Modellbinder verwenden, der von DefaultModelBinder erbt und nur die OnModelUpdated-Methode überschreibt etwas in der Art von:
%Vor%Bitte beachten Sie auch, dass EditorFür benutzerdefinierte HTML-Attribute, die Sie senden, soweit ich weiß, ignoriert.
Tags und Links asp.net-mvc razor editorfor