Comment obtenir la valeur booléenne de case à cocher dans ASP.net MVC 4
J'ai une case à cocher dans .cshtml page;
@Html.CheckBox("All", new { @class = "chkBox"})
Je veux obtenir la valeur booléenne de cette case dans ma classe de contrôleur, pour ce que j'ai essayé
bool all = Convert.ToBoolean(collection["All"]);
où collection
est l'objet de FormCollection
Classe.
Mais j'obtiens la valeur de la case comme "all
", je ne sais pas comment obtenir la valeur cochée ou non cochée à l'aide de formcollection objet.
Si quelqu'un a une Idée alors s'il vous plaît dites-moi. Merci.
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas le lier à un modèle?
À votre avis, il suffit de faire la suite
Cela devrait le faire.
Vous Pouvez Obtenir De cette façon:
Supposons que votre nom de contrôleur est l'Indice de
Si "Tous"(Case à cocher) est sélectionnée, alors Tout devient vrai.
Si "Tous"(Case à cocher n'est pas Cochée, puis Tout devient faux.
Vrai ou faux Vous pouvez modifier votre code dans votre chemin.
Remarque:La variable que vous avez mentionné dans le Post Contrôleur Doit être le même que le nom que vous avez donné pour la case à cocher dans cshtml.
je.e;
@Html.Case à cocher("Tous", new { @class = "chkBox" })
public ActionResult Index(bool Tous)
C'est parce que vous balise d'entrée a la valeur que
all
. Dans ce cas, c'est une bonne pratique pour lier le type de droit, pour l'échantillon:Ou, mieux que cela, vous pouvez créer un ViewModel et le lier, par exemple:
Ajouter une classe avec les champs que vous voulez utiliser sur le dossier de Modèles.
Après elle, à votre avis, vous tapez juste le point de Vue et de créer les contrôles à l'aide de Html helpers, pour l'échantillon:
Obs: c'est juste un exemple de
Et dans votre contrôleur, vous obtenez juste un exemple de ce modèle, et de laisser asp.net mvc lier pour vous en tant qu'objet:
C'est une bonne pratique de le faire, parce que les ViewModels représente les champs dont vous avez besoin sur la Vue et de les transférer entre les contextes (contrôleurs, des vues, des services, api, etc..).
Vous pouvez essayer cette approche. Vous pouvez obtenir le plus d'informations d'ici asp.net mvc: pourquoi est Html.Case à cocher générer un surplus de caché entrée
Vous avez besoin de modifier votre code comme celui-ci. Son travail: vous devez d'abord le convertir en chaîne de convertir une valeur booléenne.
Merci les Gars pour toutes vos réponses, tous les sens. Mais en fonction de la réalisation de la condition ci-dessus, j'ai modifié mon .cshtml code un peu, plutôt que d'utiliser la syntaxe razor, je suis en utilisant ce dans mon .cshtml page
Maintenant dans mon .cs page que j'ai récolté la valeur booléenne comme suit;
Donc, en gros ce qu'il fait est, si la case n'est pas cochée, puis il donnera
value
commefalse
sinon, formcollection tiendra compte de la case et donnera la valeur deall
commetrue
.