Checkbox funktioniert nicht mit boolean-viewmodel-Eigenschaft
Ich bin mit MVC6 und haben eine checkbox, input-Feld in mein Formular, aber wenn das Formular abgeschickt wird der Wert für das Kontrollkästchen immer an die ViewModel als falsch:
Hier ist, wie die Eigenschaft deklariert ist mein ViewModel:
[Display(Name = "Include Sales Tax")]
public bool IncludeSalesTax { get; set; }
Hier ist, wie die form aussieht, in meinem MVC6 razor form:
<div class="form-group">
<div class="checkbox">
<label><input asp-for="IncludeSalesTax" type="checkbox" value="">@Html.DisplayNameFor(m => m.IncludeSalesTax)</label>
</div>
</div>
Ich dachte das oben wäre der beste Weg zu Folgen, Twitter Bootstrap-standards und verwenden Sie die ASP.NET MVC6 asp-für-tag-für-Modell verbindlich.
Wenn ich das Formular abschicken der Wert für IncludeSalesTax ist immer false, selbst wenn die Option aktiviert ist. Was mache ich falsch?
Hängt von deiner doctype-Deklaration. Eingänge sind leere Elemente und ist nicht erforderlich, End-tag in HTML5. Wahrscheinlicher ist, dass es ist, weil die leeren value-Attribut.
InformationsquelleAutor Blake Rivell | 2016-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
input type checkbox sendet ein "ein", wenn es gesetzt ist. Sonst wird es nicht gesendet.
Es ist wichtig, dass Sie die value-Attribut auf true. In diesem Fall sendet es wahr oder nichts, das ist perfekt, um das binden an einen booleschen Wert.
Wirklich hilfreich auch!
InformationsquelleAutor pinki
Die razor view engine erzeugt normalerweise eine checkbox ein hidden-input mit dem gleichen Namen.
Können Sie einfach den html unten, um sicherzustellen, erhalten Sie das gewünschte Ergebnis:
InformationsquelleAutor Ziregbe Otee
Nachdem Sie Visual Studio generieren Sie das Formular basiert auf meinem ViewModel hier ist, wie Sie es tut:
Zusätzlich verpasste ich die Schließung meiner input-tag. So kann es auch geschehen, wie dies die bootstrap bevorzugte Weg:
InformationsquelleAutor Blake Rivell