Obtenir les valeurs de checkbox dans le contrôleur mvc 4
Je suis en train de récupérer l'objet d'une case de valeur à partir d'une liste de case à cocher, sans succès , ci-dessous le code que j'ai essayé:
Modèle
[DisplayName("Gender")]
public IList<SelectListItem> Gender { get; set; }
Contrôleur
public ActionResult Index()
{
AssociateFormViewModel objStudentModel = new AssociateFormViewModel();
List<SelectListItem> genderNames = new List<SelectListItem>();
genderNames.Add(new SelectListItem { Text = "Male", Value = "1" });
genderNames.Add(new SelectListItem { Text = "Female", Value = "2" });
genderNames.Add(new SelectListItem { Text = "Prefer not to say", Value = "3" });
objStudentModel.Gender = genderNames;
return PartialView("AssociateApplicationForm", objStudentModel);
}
[HttpPost]
public ActionResult HandleFormSubmit(MembershipFormViewModel model)
{
//model not valid, do not save, but return current umbraco page
if (ModelState.IsValid == false)
{
return CurrentUmbracoPage();
}
string test = "Gender: " + model.Gender + Environment.NewLine; //getting null here
return RedirectToCurrentUmbracoPage();
}
Vue
@foreach (var names in @Model.Gender)
{
var checkBoxId = "chk" + names.Value;
var tdId = "td" + names.Value;
<table width="100%">
<tr >
<td width="20px">
<input type="checkbox" id="@checkBoxId" class="chkclass" value="@names.Value" />
</td>
<td id="@tdId" width="100px">
@names.Text
</td>
</tr>
</table>
}
Des idées où je me suis tromper pour la case sélectionnée valeur est à venir null dans le post d'action, et comment puis-je limiter à l'utilisateur de sélectionner une seule case à cocher,
De l'aide ou des suggestions seront appréciées .
Grâce
OriginalL'auteur Mr A | 2013-11-11
Vous devez vous connecter pour publier un commentaire.
attribuez un nom à votre case:
Puis accepter un tableau de chaîne de nom de paramètre
gender
Non, je voulais dire le sexe. le
name
attribut html servir comme la clé de la valus affiché sur le contrôleur. Votre modèle.Le genre est une Listetoujours rien 🙁
les valeurs dans votre
string[] gender
paramètre. pas dans votre modèleEnsuite, utilisez un bouton radio à la place. Case est conçu pour les sélections multiples.
OriginalL'auteur WannaCSharp
Que par votre code
model.Gender
une liste juste pour créer des cases à cocher.Pour arriver case cochée valeur, vous devez ajouter une nouvelle propriété dans vous modèle comme
public string SelectedGender { get; set; }
et lors de la création des cases à cocher nom les cases à cocher de nouveaux propertyname c'est à dire SelectedGender
Espère que cela va vous aider.
Êtes-vous de vérifier la valeur de
model.SelectedGender
dans le ContrôleurOriginalL'auteur somesh