2017-03-14 4 views
0

ich verwende bootstrap-toggle zusammen mit dem Html.CheckBoxFor() Helfer in einer Ansicht wie folgt:ASP .NET MVC CheckBoxFor Helper mit Bootstrap Kippschalter Wert immer false

@Html.CheckBoxFor(m => m.issueFlag, 
        new { id = "toggle-switch", 
         data_toggle = "toggle", 
         data_size = "normal", 
         data_on = "Issue on Invoice", 
         data_off = "No Issue on Invoice", 
         data_onstyle="danger", 
         data_offstyle="success", 
         data_width = "200" }) 

Der Schalter erscheint und Funktionen auf der Vorderseite Ende wie erwartet, aber wenn das Formular gesendet wird, ist der Wert immer falsch. Andere Dinge in der Form wie Kontrollkästchen, Dropdown-Menüs und Textfelder werden im Controller korrekt erfasst. Die POST-Aktion in der Steuerung lautet wie folgt:

Mache ich irgendwo etwas falsch? Warum ist m.issueFlag immer falsch?

(Ich werde mehr Code zur Verfügung stellen, ich bin mir nicht sicher, was sonst noch relevant ist).

aktualisieren Der erzeugte HTML ist

<input data-off="No Issue on Invoice" data-offstyle="success" 
     data-on="Issue on Invoice" data-onstyle="danger" data-size="normal"    
     data-toggle="toggle" data-val="true" 
     data-val-required="The issueFlag field is required." data-width="200"    
     id="toggle-switch" name="issueFlag" type="checkbox" 
     value="true" /> 
<input name="issueFlag" type="hidden" value="false" /> 

Ich habe nun versucht, auch ohne Veränderung, ohne die Helfer einen gerade nach oben Input-Tag zu tun.

+0

Ist es (http://www.bootstraptoggle.com/) . Und was ist der eigentliche HTML-Code? –

+0

Können Sie bestätigen, was passiert, wenn Sie in der GET-Methode den Wert von 'issueFlag' auf' true' setzen, bevor Sie das Modell an die Ansicht übergeben (es wird jetzt das 'checked' Attribut hinzugefügt) - gibt es jetzt immer wieder a zurück Wert von "true", auch wenn Sie es auf "off" setzen? –

+0

Wenn ich das tue, ist das Toggle in der Ansicht eingeschaltet (anstatt off vorher), aber es gibt immer noch "falsch" in der POST-Methode zurück. – JosephGage

Antwort

1

remove (id = "Wechselschalter") von Object HTML-Attribute, weil Sie Ihre Haupt-ID außer Kraft setzen (issueFlag) bis (Kippschalter).

wenn u Problem mit diesem Bootstrap-Toggle nur jquery verwenden und diese Attribute wie folgt hinzu: [? Dieses Plug-in]

@Html.CheckBox("abc", new { @class="abc1"}); 

<script> 
    function f() { 
     $('.abc1').attr('data-toggle', 'toggle') 
     .attr('data-onstyle', 'success') 
     .attr('data-offstyle', 'danger') 
    }; 
    f(); 
</script> 
+0

Ich habe Ihre Vorschläge ausprobiert. Leider gibt es keine Veränderung. Ich habe eine andere Methode von hier https://php.quicoto.com/toggle-switches-using-input-radio-and-css3/ – JosephGage

+0

append (bool issueFlag) in Ihrem Controller -> Parameter verwendet –