D'entrée de type case à cocher avec MVC, razor

Pourquoi est la valeur de ma case pas passé à mon ViewModel?

Mon point de Vue (j'ai omis les balises input ne sont pas pertinentes pour ce post):

@model Pro.WebUI.ViewModels.UserViewModel

@using (Html.BeginForm("ManageUsers", "Administration", FormMethod.Post, 
new { id = "request-form", @class = "form-horizontal" }))
{
 <div class="form-group">
  <label for="inputAuthorize" class="col-lg-2 control-label">Authorize</label>
   <div class="col-lg-8">
     <input type="checkbox" id="Authorized" name="Authorized" value="@Model.Authorized" />
   </div>
 </div>
 <div class="form-group">
  <div class="col-lg-10 col-lg-offset-2">
   <br /><br />
   <button type="submit" class="btn btn-primary">Submit Request</button>
   </div>
 </div>
 }

Mon ViewModel:

public class UserViewModel
{
    [Key]
    public string UserID { get; private set; }

    public string UserName { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public bool Authorized { get; set; }
    public string Email { get; set; }
    public string Phone { get; set; }
    public string Notes { get; set; }
}

Mon Contrôleur:

 [HttpPost]
    public ActionResult ManageUsers(UserViewModel model)
    {
        if (ModelState.IsValid)
        {
            ProcurementUser obj = new ProcurementUser();
            obj.UserName = model.Email;
            obj.FirstName = model.FirstName;
            obj.LastName = model.LastName;
            obj.Email = model.Email;
            obj.Phone = model.Phone;
            obj.Authorized = model.Authorized;
            UserRepository.SaveUser(obj);
            //success message
        }
        return View(model);
    }

Je n'ai pas toutes les balises input, mais lorsque j'entre le code sans la case, toutes les valeurs sont transmises. J'ai regardé d'autres case des questions sur les forces spéciales, mais ils utilisent le plus souvent l' @Html.Case à cocher ou @Html.CheckboxFor. Je voudrais juste utiliser input type="checkbox"

Décoché les cases ne postez pas de retour. Il y a une très bonne raison à fortement typé aides à la création de votre html - ils le faire correctement!
Html.Case à cocher ou Html.CheckboxFor créer une case à cocher d'entrée... mais génère tout le code nécessaire pour le faire (Id génère comme il doit l'être, et aussi Caché avec le même nom de gérer les cases non cochées).
Je suggère également que vous vérifiez le html généré (en particulier la value attribut pour le true et false cas) et il doit être clairement indiqué. Et quel est le point de <label for="inputAuthorize" ...> - votre case a name="Authorized", pas name="inputAuthorize"! Toujours utiliser le fortement typé html helpers!
bonne info, merci. L'étiquette est juste une partie de l'bootstrap modèle.
plus de la bonne info, je ne connaissais pas le Caché.

OriginalL'auteur JoshYates1980 | 2014-12-15