2017-12-29 10 views
0

Wenn ich das in die Konsole Chrom gebenJSON Serialisierung „auf“ anstelle von „true“

$('#myForm').serialize() 

ich die serialisierten Antwort

Flag1=on&Flag2=on 

Wenn diese weg zu MVC geht, ist es Spiel tut Flag1 oder Flag2 zu True. Daher werden sie standardmäßig auf False gesetzt.

Warum werden sie als on anstatt true serialisiert, oder wie bekomme ich MVC, um es zu akzeptieren?

Mein html wenn sie als

<input type="checkbox" class="form-check-input" id="Flag1" name="Flag1" checked /> 
+0

Set 'Wert Form enthalten =„true“' als Attribut. 'Wenn das Wertattribut weggelassen wurde, ist der Standardwert für das Kontrollkästchen 'https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox –

+0

@ A.Wolff, das ich getan habe dies wie du gesagt hast und es (offensichtlich für dich) funktioniert super! Ich habe recht, wenn ich denke, es sollte "value =" true "' enthalten, unabhängig davon, ob es aktiviert ist oder nicht, und dies sagt nur, was geprüft bedeutet? – Mcloving

+0

Wenn Sie MVC verwenden und '@ Html.CheckBoxFor' verwenden, wird ein Kontrollkästchen mit' value = true' für Sie * erstellt, zusammen mit * einer versteckten Eingabe mit demselben Namen, aber mit 'value = false' - so Wenn das Kontrollkästchen * nicht * aktiviert ist, erhalten Sie immer noch einen anpassbaren Wert. –

Antwort

3

Bitte versuchen Sie es wie diese

tun

<input type="checkbox" class="form-check-input" id="Flag1" name="Flag1" checked value="True" />

public Action Index (Bool

und in Ihrem Controller erzeugt hilft Flag1 = falsch)

den Standardwert halten, denn wenn Kontrollkästchen aktiviert ist, werden die Postbacks Werte nur dann ein Schlüsselwertepaar der