2016-05-10 8 views
0

ich so etwas wie dieses:Hat „TextAreaFor“ übergeben NULL zum Modell oder eine leere Zeichenfolge, wenn sein Inhalt leer ist

  <div class="form-group"> 
       @Html.Label("Disclaimer Message", new { @class = "control-label col-md-2" }) 
       <div class="col-md-10"> 
        @Html.TextAreaFor(t => t.DisclaimerMessageText, new { @class = "form-control", rows = 3 }) 
       </div> 
      </div> 

Wenn ich etwas in das Textfeld eingeben und speichern, wird mein Modell der Wert Ich tippte und speichert es erfolgreich, aber wenn ich das Textfeld entleere und speichern möchte, ist der Wert NULL, ich dachte, es würde leere Zeichenfolge übergeben. Ist das normales Verhalten der Dinge?
Auch in meinem Modell habe ich diese definiert:

public string DisclaimerMessageText { get; set; } 

Antwort

3

Ja. MVC normalisiert leere Zeichenfolgen wie null auf Post. Dies liegt daran, dass es effektiv keine Möglichkeit gibt, null zu posten, und es ist passender für ein Feld, das nicht auf null festgelegt wurde, als eine leere Zeichenfolge. Ein leerer String impliziert, dass der Wert intendiert eine leere Zeichenfolge sein soll, was normalerweise nicht wahr ist.

Wenn Sie möchten, dass es tatsächlich als leere Zeichenfolge anstelle von NULL in der Datenbank beibehalten wird, können Sie die Eigenschaft manuell auf eine leere Zeichenfolge festlegen.

Verwandte Themen