Сгенерированный Javascript ASP.NET MVC2 содержит запятую, которая разрывает скрипт в Internet Explorer, код внутри - PullRequest
0 голосов
/ 08 сентября 2010

У меня есть следующий код, который прекрасно работает в любом браузере, кроме IE

<script type="text/javascript">

   if (!window.slider) var slider = {}; slider.data = [<% foreach (var item in Model) {%>{ "id":"<%: item.ImageID %>", "client":"<%: item.ContentTitle %>", "desc":"<%: item.ContentDescription %>" },<%} %> ];

</script>

Проблема в запятой, которая разделяет каждое из генерируемых значений.Internet Explorer подгоняет, если есть запятая и нет исходящего значения, поэтому мне нужен способ генерации этого кода без запятой для последнего элемента в коллекции.Правильно ли я подхожу к этому?Спасибо, и посмотрите код http://hub.mhn.co в действии (я приветствую и ценю любые комментарии или отзывы, так как это мой первый сайт MVC ^ _ ^).

Ответы [ 3 ]

2 голосов
/ 08 сентября 2010

Да, IE не любит запятые в массивах или объектах.Исправьте это, и это должно работать.Быстрый способ обойти это - сохранить строки в массиве, а затем использовать операцию / метод join для строк в C #.

1 голос
/ 08 сентября 2010
<script type="text/javascript">

   if (!window.slider) var slider = {}; 
   slider.data = [<% = string.Join(",", Model.Select(item=> "{ id:\""+ item.ImageID +"\", client:\""+ item.ContentTitle "\", desc:\""+item.ContentDescription "\" }").ToArray())  ];

</script>
1 голос
/ 08 сентября 2010

Это должно работать

if (!window.slider) var slider = {}; 
slider.data = [];   
<% foreach (var item in Model) {%>
    slider.data.push({"id":"<%: item.ImageID %>", "client":"<%: item.ContentTitle %>", "desc":"<%: item.ContentDescription %>" });
<% } %>         
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...