[英]ASP.NET MVC2 Generated Javascript contains comma that breaks script in Internet Explorer, code inside
我有以下代碼,該代碼在除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網站^ _ ^)。
是的,IE不喜歡在數組或對象上尾隨逗號。 解決該問題,它應該可以工作。 一種快速的解決方法是將字符串存儲在數組中,然后對C#中的字符串使用join
操作/方法。
這應該工作
if (!window.slider) var slider = {};
slider.data = [];
<% foreach (var item in Model) {%>
slider.data.push({"id":"<%: item.ImageID %>", "client":"<%: item.ContentTitle %>", "desc":"<%: item.ContentDescription %>" });
<% } %>
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.