代码之家  ›  专栏  ›  技术社区  ›  Grahame A

ASP.NET MVC2生成的javascript包含逗号,逗号在Internet Explorer中中断脚本,代码在内部

  •  0
  • Grahame A  · 技术社区  · 14 年前

    我有以下代码,在除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将抛出fit,因此我需要一种生成此代码的方法,在集合中的最后一项上不带逗号。我走这条路对吗?谢谢,再见 http://hub.mhn.co 对于实际的代码(我欢迎并感谢任何评论或反馈,因为这是我的第一个MVC站点^ ^)。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Eugene Ramirez    14 年前

    这应该管用

    if (!window.slider) var slider = {}; 
    slider.data = [];   
    <% foreach (var item in Model) {%>
        slider.data.push({"id":"<%: item.ImageID %>", "client":"<%: item.ContentTitle %>", "desc":"<%: item.ContentDescription %>" });
    <% } %>         
    
        2
  •  2
  •   Cristian Sanchez    14 年前

    是的,ie不喜欢在数组或对象上拖尾逗号。把它修好,它就可以工作了。快速解决方法是将字符串存储在数组中,然后使用 join C中字符串的操作/方法。

        3
  •  1
  •   takepara    14 年前
    <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>