2016-09-27 9 views
-1

ich CheckBoxFor verwende für boolean Wert einreichen.Checkboxfor Rückkehr immer null in MVC Razor

Demo.cshtml

<div class="checkbox"> 
    <label>@Html.CheckBoxFor(i => i.ReportModel.Is_XRay.Value) X-Ray</label> 
</div> 

enter image description here

Auch habe ich ausgewählt Checkbox, erhalte ich in versteckten Wert falsch.

Auch wenn ich Seite einreichen, erhalte ich Checkbox Wert null

+1

Gibt es einen Grund 'Is_XRay' NULL-Werte zugelassen? Ich denke, das ist wahrscheinlich die Ursache Ihres Problems ... – petelids

+0

Nein, es ist nur Null in der Datenbank. Aber es ist immer der Wert Wahr/Falsch- –

+0

einen Blick auf diese Frage haben - http://stackoverflow.com/questions/6849774/mvc3-creating-checkbox-for-nullable-boolean. Ich denke, das könnte helfen. In diesem Fall ist es am besten, die Antwort von Darin zu betrachten (um ein Ansichtsmodell mit einer nicht nullbaren Eigenschaft zu erstellen). – petelids

Antwort

0

Das verdeckte Eingabe immer den Wert false haben sollte. Dies liegt daran, dass, wenn Ihr Kontrollkästchen nicht aktiviert ist, keine Daten an den Server gesendet werden. Um dies zu umgehen, gibt es eine versteckte Eingabe mit dem Wert false, die immer auf dem Server veröffentlicht wird. Sie werden feststellen, dass die URL Ihren Variablennamen zweimal enthalten sollte (einmal mit true, einmal mit false), wenn Sie das Kontrollkästchen aktiviert haben. Jetzt, um Ihr wirkliches Problem anzugehen - ich vermute, dass es etwas mit dem Namen Ihrer Variablen zu tun hat. Razor fügt Unterstriche ein, wenn Sie Objekte in einer Liste verwenden, und ich denke, Sie haben bereits einen, der dem Modellbinder Schwierigkeiten bereitet.