2010-05-10 4 views
0

J'ai ArrayList dans mon modèle et je veux l'itérer en javascript. J'utilise le code suivant, mais son erreur me donner: CS0103: Le nom « i » n'existe pas dans le contexte actuelAccéder à ArrayList en Javascript - ASP.Net MVC2

for(var i=0; i <= <%=Model.KeyList.Count%>; i++) 
{ 
    alert('<%=Model.KeyList[i]%>');  
} 

Comment puis-je résoudre ce problème?

Répondre

0

Ce code ne fonctionne pas. Le foreach est évalué sur le client et les instructions <% ...%> sont évaluées sur le serveur. Pour cette raison, "i" n'existe pas, il n'existe que sur le navigateur du client.

1

Cela ne fonctionnera pas. Le code C# est exécuté côté serveur avant l'exécution du code javascript, donc la variable i n'existe pas lorsque vous exécutez le code C#. Je ne peux pas vraiment vous dire comment le réparer car vous ne dites pas ce que vous voulez faire. Mais vous devez répéter le côté serveur de liste dans une boucle C#, ou côté client dans une boucle js. Vous ne pouvez pas les mélanger ensemble.

0

Si vous souhaitez utiliser JS pour analyser la liste, vous devez le convertir en tableau javascript. Le résultat final que vous devez produire est une collection d'objets en {} notation (comme dans { name: "a", value: "b" }) et enveloppé avec [].

Vous devez donc générer ce code client et l'analyser sur le client, ou le supprimer et le traiter sur le serveur. Ou, créez un résultat d'action qui renvoie un résultat JsonResult et renvoie le tableau; le cadre MVC devrait automatiquement convertir pour vous; vous devrez demander cela avec JavaScript via AJAX.

HTH.