2011-09-02 3 views
1

나는 ASP.net에서 일부 코드를 작성 : 코드 뒤에 :JS에 목록 <string>을 등록하고 반복하는 방법은 무엇입니까?

public string Locations { get; set; } 
public List<string> Categories { get; set; } 
public List<string> Hrefs { get; set; } 
public string CategoriesJ { get; set; } 
public string HrefsJ { get; set; } 

... 
    this.CategoriesJ = new JavaScriptSerializer().Serialize(Categories); 
    this.HrefsJ = new JavaScriptSerializer().Serialize(Categories); 

마크 업 JS :

<script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script> 
<script type="text/javascript"> 
     var Categories = jQuery.parseJSON(this.CategoriesJ); 
     var Hrefs = jQuery.parseJSON(this.HrefsJ); 
function onInit(){ 
    alert(Categories[0]); 
}; 
</script> 

확인 인덱스는 JSON var에있다 사용할인가요? 작성하는 것이 올바른 방법입니까?

경고가 표시되지 않는 이유는 무엇입니까? VAR 뒤에 코드는 같다 : [ "레스토랑", "레스토랑"] 나는 오류 얻을 : catch되지 않은 형식 오류가 : 속성을 읽을 수 없습니다 '0'널의

답변

0

그런 ASPX에서 서버 측 변수를 참조 할 수 없습니다. ASP.NET에서 다음을 필요로합니다.

<script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script> 
<script type="text/javascript"> 
    var Categories = <%= CategoriesJ %>; 
    var Hrefs = <%= HrefsJ %>; 
function onInit(){ 
    alert(Categories[0]); 
}; 
</script> 
+0

<% =와 <% 및 <% #의 차이점은 무엇입니까? –

+1

'<%'는 페이지 렌더링 중에 서버 측에서 실행되는 코드 블록이며, <% ='는 같지만 페이지 렌더링 중에 블록에 표현식을 반환하며, <% # '은 데이터 바인딩 중에 컨트롤 속성에 바인딩되는 식입니다. 코드 블록 유형을 더 잘 설명하는 인라인 식 문서 [here] (http://support.microsoft.com/kb/976112)가 있습니다. – TheCodeKing

2

예, 맞습니다. 모든 값을 반복하려면 다음을 사용하십시오.

for(var x=0;x<Categories.length;x++) { 
    alert(Categories[x]); 
} 
+0

코드 숨김에서 Json에게 목록을 구문 분석 한 다음 마크 업에서 다시 Json을 구문 분석합니까? 더 짧은 길이 있지 않니? –

+0

기본적으로 중첩 된 JavaScript 배열입니다. 요소를 얻는 방법은 JSON의 구조에 따라 다릅니다. 질문을 편집하여 샘플을 게시 할 수 있다면 도와 드리겠습니다. –

+0

나는 지금했다. 감사합니다 –

관련 문제