Maison > Questions et réponses > le corps du texte
J'essaie de transmettre une liste (tableau) de boutons radio de JavaScript à un contrôleur C# Net Core 6.
HTML est comme ceci :
<input class="js-filter-item" type="radio" name="Performance_Type" value="Standard" id="filter-group-Performance_Type--item-Standard" /> <input class="js-filter-item" type="radio" name="Performance_Type" value="VIP" id="filter-group-Performance_Type--item-VIP" /> <input class="js-filter-item" type="radio" name="Price" value="Up_to_£55" id="filter-group-Price--item-Up_to_£55" /> <input class="js-filter-item" type="radio" name="Price" value="Up_to_£70" id="filter-group-Price--item-Up_to_£70" />
Il existe donc de nombreux groupes (plus que ce que je peux montrer ici), chacun avec de nombreuses options. Je souhaite obtenir la liste complète des options avec « nom », « valeur » et « coché ». Ou, si c'est plus simple, juste quelques options "cochées" (utilisez "id" fera l'affaire)
Le plus proche que j'ai obtenu jusqu'à présent est :
var options = document.querySelectorAll('.js-filter-item'); var optionsArray = JSON.stringify((Array.from(options).map(el => ([el.name, el.value, el.checked]))));
Les paramètres du contrôleur sont définis comme des "chaînes"
Cependant, j'obtiens ceci, qui n'est pas un JSON valide :
[["Performance_Type","Standard",true],["Performance_Type","VIP",false]]
J’ai l’impression de ne pas avoir géré ça de la bonne façon ! Fondamentalement, dans un contrôleur C#, j'ai besoin de savoir quelles options sont cochées.
P粉6274272022024-02-27 09:12:48
En fait, ce scénario peut être implémenté de plusieurs manières, afin de trier les boutons radio sélectionnés, nous devons d'abord définir la condition en fonction de son identifiant. De plus, nous devons lier ces identifiants en classes et enfin envoyer la requête au contrôleur.
Voyons cela en pratique : disons que nous avons le cours suivant.
Modèle :
public class RadioButtonModel { public string Name { get; set; } public string Value { get; set; } public string Id { get; set; } public bool IsChecked { get; set; } }
Contrôleur :
[HttpPost] public ActionResult PostRadioBUtton(ListradioButtonModels) { return Ok(radioButtonModels); }
Vue :
HTML :
Remarque : J'ai défini l'attribut coché dans le premier et le dernier bouton radio pour tester le scénario. Vous devez le faire dans une condition if basée sur l'attribut Id ou name. Il existe des tonnes d’exemples en ligne sur la façon de procéder.
Script :
@section scripts { sssccc sssccc sssccc }
Sortie :