Hier ist meine einfache Klasse ist:Bindung ein Kontrollkästchen zu einem Modell, wenn ein Formular POSTen
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using XXX.Domain;
namespace XXX.WebUI.Models
{
public class AccountRegisterModel
{
..snip..
[Required(ErrorMessage = "You must agree to our terms of use.")]
public bool AcceptedTerms { get; set; }
..snip..
}
}
Und meine Ansicht:
<div class="terms">
<input type="checkbox" name="AcceptedTerms" value="AcceptedTerms" />
<img class="sim" src="@Url.Content("~/Public/images/unchecked.gif")" alt="accept the terms" />
<p>I accept the <span class="legalize">Terms of Service & Privacy Policy</span> and wish to continue</p>
</div>
Die Ansicht beginnt mit der Checkbox nicht geprüft und mit einigen Javascript code Ich benutze ein Bild, um eine pfiffige Checkbox zu erstellen, und hinter den Kulissen aktualisiere das Kontrollkästchen, damit der korrekte Wert zurückgeschickt wird.
$('.terms input[type="checkbox"]').prop("checked", true);
Für Debug-Zwecke habe ich eine display:block
Regel auf die „versteckten“ hinzugefügt tatsächlichen Checkbox, um zu sehen, wenn die Überprüfung tatsächlich aktiviert wird, wenn ich das Bild klicken und ich kann bestätigen, dass dies der Fall ist.
Auch mit Firebug, hier ist der HTML-Code, gezeigt ist, wenn ich das Bild klicken und das Kontrollkästchen aktiviert ist:
<input type="checkbox" name="AcceptedTerms" value="AcceptedTerms">
Wenn das Formular geschrieben wird, wird der Wert von AcceptedTerms falsch bleibt, als wenn der Wert nicht zurück auf meinen Server gebucht werden. Vielleicht fehlt im HTML ein mir unbekanntes Attribut.
Irgendwelche Ideen oder Vorschläge?
Welche Form? Wie posten Sie es? jQuery $ .ajax oder etwas ähnliches? –
Ich habe das HTML-Formular nicht veröffentlicht, da es nicht relevant ist. Es ist einfach für diese POSTS-Daten, nichts mit $ .ajax oder whatnot. :) Wenn Sie es sehen müssen, lassen Sie es mich wissen, aber es ist nichts Besonderes. –