Итерация по модели IEnumerable в JavaScript - PullRequest
3 голосов
/ 02 апреля 2012

У меня есть модель IEnumerable <> Car (здесь она не позволяет правильно использовать угловые скобки), используемая в моем представлении: и в моем JavaScript я должен создать массив объектов, соответствующих объекту вмоя модельУ меня проблемы с итерацией по моей модели в JavaScript Если я использую бритву, код javascript не работает :

<script type="text/javascript">

var carsArray = new Array();     

@foreach (var item in Model)
{
    //add the and item to carsArray object
}

//OR
for(i=0;i<@Model.Count();i++)
{
    alert(@Model.ElementAt(i).Title);

// Ошибка: имя «i» не работаетсуществует в текущем контексте

 //add to array

}

</script>

Спасибо!

Ответы [ 2 ]

4 голосов
/ 02 апреля 2012

Вы пытались обернуть содержимое в теги <text>?

var carsArray = new Array();     

@foreach (var item in Model)
{
    <text>carsArray.push("@item.Property")</text>
}
3 голосов
/ 02 апреля 2012

Вы смешиваете код на стороне сервера и на стороне клиента.

Если вы хотите выложить клиентский код на сервере, вы можете.

Но лучше всего сериализовать данные вашей модели в JSON и поместить их на клиент.


Грубый пример:

Обновление

@{
   var js = new JavaScriptSerializer();
}

myJavascriptObject.Models = @js.Serialize(myModels);
...