Einfache Frage: Wenn Sie den HTML-Helper von ASP.NET MVC Framework 1 verwenden, ist es einfach, einen Standardwert für ein Textfeld festzulegen, da eine Überlastung vorliegt Html.TextBox(string name, object value)
. Als ich versuchte, die Html.TextBoxFor- Methode zu verwenden, war meine erste Vermutung, Folgendes zu versuchen, was nicht funktionierte:
<%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %>
Sollte ich mich vorerst nur an Html.TextBox (String, Objekt) halten?
c#
asp.net-mvc-2
html-helper
kompiliert
quelle
quelle
Antworten:
Sie können dies versuchen
quelle
Dies sollte für MVC3 und MVC4 funktionieren
Wenn Sie möchten, dass es sich um ein verstecktes Feld handelt
quelle
Es stellt sich heraus, dass, wenn Sie das Modell nicht für die View-Methode in Ihrem Controller angeben, kein Objekt mit den Standardwerten für Sie erstellt wird.
quelle
Instructor
?Der Standardwert ist der Wert Ihrer
Model.Age
Immobilie. Das ist der springende Punkt.quelle
Sie können einfach tun:
oder besser, dies wechselt zum Standardwert '0', wenn das Modell null ist, z. B. wenn Sie zum Bearbeiten und Erstellen dieselbe Ansicht haben:
quelle
value = "0" setzt den Standardwert für @ Html.TextBoxfor
Die Groß- und Kleinschreibung "v" sollte Groß- und Kleinschreibung sein
Unten ist ein Arbeitsbeispiel:
quelle
So habe ich es gelöst. Dies funktioniert, wenn Sie dies auch zum Bearbeiten verwenden.
quelle
Diese Arbeit für mich
quelle
Die Verwendung
@Value
ist ein Hack, da zwei Attribute ausgegeben werden, z.Sie sollten dies stattdessen tun:
quelle
Dies hat bei mir funktioniert. Auf diese Weise setzen wir den Standardwert auf leere Zeichenfolge
quelle
Wenn Sie ein Teilseitenformular zum Bearbeiten und Hinzufügen haben, besteht der Trick, den ich als Standardwert verwende,
0
darin, Folgendes zu tun:Auf diese Weise wird es sein,
0
wenn es nicht eingestellt ist, oder das tatsächliche Alter, wenn es existiert.quelle
Versuchen Sie dies auch, dh entfernen Sie neues {} und ersetzen Sie es durch eine Zeichenfolge.