Ответ 1
Вы можете попробовать следующее:
var array = @Html.Raw(Json.Encode(@ViewBag.Array));
for(var i = 0; i < array.length; i++) {
jScriptArray[i] = array[i];
}
Цель состоит в том, чтобы получить данные из ViewBag.Array
в массив Javascript. Данные вычисляются в контроллере, поэтому я не могу получить его прямо из базы данных. Мне нужны данные для рисования диаграммы с помощью jqplot. Код:
for(i = 0; i < @ViewBag.Array.Length; i++)
{
jScriptArray[i] = @ViewBag.Array[i];
}
Проблема заключается в том, что "i" не существует в текущем контексте "в @ViewBag.Array[i]
, но не имеет проблем в jScriptArray[i]
. Любая помощь приветствуется.
Вы можете попробовать следующее:
var array = @Html.Raw(Json.Encode(@ViewBag.Array));
for(var i = 0; i < array.length; i++) {
jScriptArray[i] = array[i];
}
<script>
var jScriptArray=[];
@{
for(i = 0; i < ViewBag.Array.Length; i++){
<text>jScriptArray[@i] = "@ViewBag.Array[@i]";</text>
i++;
}
}
</script>
В html файле вы получите что-то вроде этого:
jScriptArray[0] = "ArrayValue0";
jScriptArray[1] = "ArrayValue1";
jScriptArray[2] = "ArrayValue2";
Лучший способ достичь вашей цели - создать контроллер JSON, который возвращает данные в массив JSON.
С вашего javascript вы можете запросить данные, а затем обработать их.
Надеюсь, что это поможет