J'ai une gamme de cordes dans JS. Tous les membres sont en réalité des nombres.
Mon contrôleur a un paramètre Int [].
Je l'envoie de jQuery: p> et je le reçois en utilisant p> Le paramètre n'est pas rempli, j'ai vérifié, le request.form.form.form.Form] code> contient "
[\" 25 \ ", \" 26 \ "] " code>, la chaîne de réglementation de la matrice JSON.
Y a-t-il un moyen de le faire automatiquement
4 Réponses :
Avez-vous essayé de ne pas strirler le tableau et de laisser le modèle de modèle par défaut de MVC faire la magie je suis sûr que MVC verra le tableau et le voir est un tableau d'INTS et mappez-le à votre éventail d'INTS correctement p> p>
Oui, demande.Form ["IDS []"] aura la valeur "25,26", int [] toujours non contraignante.
@Tdaver Vous devez définir la propriété "traditionnelle" "traditionnelle" à vrai pour la sérialisation de la gamme peu profonde pour fonctionner correctement selon api.jquery.com/jquery.param aussi
Tout ce que je manquais était le drapeau traditionnel. Merci
@ Keith.abramo Veuillez inclure une référence à la propriété traditionnelle de votre réponse.
Vous devez utiliser
$.ajax({ url: someUrl, data: arrayToParamObject('ids', id_array) })
Vous pouvez le faire de deux manières différentes
public class myController
{
public ActionResult myAction(string json)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<int> list = serializer.Deserialize<List<int>>(json);
}
}
Pour MVC3, vous devez configurer JQuery pour utiliser la sérialisation traditionnelle "superficielle". Voir ici .
Demande Ajax côté client: p> Méthode d'action: p>