2013-06-14 2 views
0

내 코드 숨김에서 만든 목록 세부 정보를 표시하려고합니다. 나는 콘솔에서 정의되지 않고있다?목록에서 cs에서 aspx 페이지로 전달

public partial class WebForm1 : System.Web.UI.Page 
    { 
     public List<Person> persons { get; set; } 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      Person p1 = new Person() { name = "Tom" }; 
      Person p2 = new Person() { name = "Ed" }; 
      List<Person> lijst = new List<Person>(); 
      lijst.Add(p1); 
      lijst.Add(p2); 
      persons = lijst; 

     } 

    } 

    public class Person 
    { 
     public string name { get; set; } 
    } 

영문

<script> 
     var persons = '<%= persons%>' 

     var length = persons.length; 

     for (var i = 0; i < length; i++) { 
      person = persons[i]; 

      console.log(person.name); 
     } 

    </script> 

답변

1

문제입니다 자바 스크립트 당신의 C# 클래스에 대한 아이디어를 가지고 있지 및 그것은 속성입니다. 당신은

클래스 속성에서 사람 이름을 쉼표로 구분 된 당신은 방법 수익을 가질 수

아래 같은 것을 시도 .. 문자열, XML 또는 JSON 등과 같은 알려진 형식으로 변환하거나 직렬화해야 할 수도 있습니다

public string GetPersonNames 
    { 
     get 
     { 
      return string.Join(",", persons.Select(p => p.name)); 
     } 
    } 
당신이 '

<script> 
     var persons = '<%= GetPersonNames%>'; 
</script> 

에 의해 사람의 이름과 분할을 얻을 또는

아래에 시도 할 수 있습니다 귀하의 영문에서

<script type="text/javascript"> 
    var persons = '<%= new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(persons)%>'; 
    persons = JSON.parse(persons); 
    var length = persons.length; 
    alert(length); 
    for (var i = 0; i < length; i++) { 
     var person = persons[i]; 
     alert(person.name); 
    } 
</script> 
0

, .cs 코드를이 시도 영문에서

Person p1 = new Person() { name = "Tom" }; 
     Person p2 = new Person() { name = "Ed" }; 
     List<Person> lijst = new List<Person>(); 
     lijst.Add(p1); 
     lijst.Add(p2); 
     persons = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(lijst); 

자바 스크립트

var persons = eval('<%= persons%>'); 
    //this will show "Tom" 
    alert(persons[0].name); 
관련 문제