Доступ к ArrayList в Javascript - ASP.Net MVC2 - PullRequest
0 голосов
/ 11 мая 2010

У меня есть ArrayList в моей модели, и я хочу перебрать его в javascript. Я использую следующий код, но он дает мне ошибку: CS0103: имя 'i' не существует в текущем контексте

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

Как мне решить эту проблему?

Ответы [ 3 ]

1 голос
/ 11 мая 2010

Это не будет работать. Код c # выполняется на стороне сервера перед выполнением кода javascript, поэтому переменная i не существует при выполнении кода c #. Я не могу сказать вам, как это исправить, потому что вы не говорите, что вы хотите сделать. Но вам нужно перебрать серверную часть списка в цикле c # или клиентскую часть в цикле js. Вы не можете смешать их вместе.

0 голосов
/ 11 мая 2010

Если вы хотите использовать JS для анализа списка, вам необходимо преобразовать его в массив javascript. Последний результат, который вам нужно получить, - это коллекция объектов в нотации {} (как в { name: "a", value: "b" }), заключенная в [].

Таким образом, вам нужно сгенерировать этот клиентский код и проанализировать его на клиенте, или удалить его и обработать на сервере. Или создайте результат действия, который возвращает JsonResult и возвращает массив; фреймворк MVC должен автоматически конвертировать для вас; Вы должны запросить это с помощью JavaScript через AJAX.

НТН.

0 голосов
/ 11 мая 2010

Этот код не работает. Foreach оценивается на клиенте, а инструкции <% ...%> оцениваются на сервере. По этой причине «i» не существует, оно существует только в браузере клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...