2010-11-19 2 views
0

sur mon point de vue, j'ai beaucoup < .img /> Ressemblant que:données ASP.NET MVC passer de beaucoup <img> withe le même nom au contrôleur

<img id="img1" name="myName" alt='aa' href='..' /> 
<img id="img2" name="myName" alt='bb' href='..' /> 
<img id="img3" name="myName" alt='cc' href='..' /> 

la question est, est-il possible de obtenir l'attribut alt de tous les < .img /> avec le même name et le passer au contrôleur comme par exemple string[]? La première pensée a été d'utiliser jQuery pour joindre tous ces attributs en une seule chaîne et ensuite le passer au contrôleur, mais je me demande s'il y a une autre approche

+0

je suppose que cela dépend de la façon dont vous voulez le traiter à la fin du contrôleur. – melaos

Répondre

1

Vous pouvez utiliser jquery pour obtenir toutes les valeurs alt et les envoyer au serveur comme une requête AJAX:

var alts = $('img[name=myName]').map(function(i, item) { 
    return $(item).attr('alt'); 
}); 

$.ajax({ 
    url: '/', 
    data: { myName: alts.toArray() }, 
    traditional: true, 
    success: function(result) { 
     alert(result);    
    } 
}); 
+0

Je passe la variable alts comme une valeur au champ caché, puis je reçois sa valeur sur le côté serveur (dans le contrôleur). Le problème est, je reçois le "[object Object]" au lieu de la valeur que j'attends – Tony

+0

@Tony, quel champ caché? Avec l'extrait de code que j'ai fourni, vous n'avez besoin d'aucun champ masqué. Vous envoyez directement les valeurs sous la forme d'une requête AJAX. Si vous voulez utiliser des champs cachés, vous aurez besoin de plusieurs: un pour chaque 'alt'. –

1

Vous avez raison. Vous devrez utiliser le script côté client pour envoyer ces valeurs au serveur.

Il n'y a pas d'autre moyen de les capturer côté serveur.

1

Il existe deux méthodes pour renvoyer des données au serveur: la chaîne de requête et les valeurs POST de formulaire. Si vous voulez que ces balises alt soient renvoyées au serveur, vous devrez:

  • utiliser JavaScript pour supprimer les informations alt sur les images.
  • pour chaque image créer une entrée masquée à l'intérieur d'un formulaire sur la page.
  • chaque entrée cachée doit avoir le même nom avec une valeur pour chaque image.
  • soumettez le formulaire via JavaScript.
  • La liaison de MVC placera chaque entrée cachée avec le même nom dans une chaîne [] que vous pouvez utiliser dans votre contrôleur.
Questions connexes