2014-09-23 3 views
0

나는 asp.net 프로젝트에서 일하고 있으며 약간의 문제에 직면 해 있으며 Google 검색에서 적절한 예제를 얻을 수 없습니다.JavaScript Array에 C# ArrayList 가져 오기

내 프로젝트에는 arrayList라는 ArrayList()가 있습니다. JavaScript 배열에서이 arrayList를 가져 오려고합니다.

내 ArrayList를 단지 코드를 다음과 같습니다 :

C# 코드 :

ArrayList arrayList = new ArrayList(); 
    arrayList.Add(1); 
    arrayList.Add(2); 
    arrayList.Add(3); 

자바 스크립트 코드 : 여기

var jsArray = new Array(); 

내가 jsArray '라는 이름의 자바 스크립트 배열에 C#을 전체의 ArrayList를 얻을 필요 '.

어떻게받을 수 있습니까?

감사합니다.

+2

어떻게 JS 방법이 배열 목록을 전송 하시겠습니까? 코드 숨김에서 왔어? – SpiderCode

답변

1

아래의 자바 스크립트 object.As를 얻기 위해 사용합니다.Net

배열을 반환하려면 아래 코드를 작성해야합니다. 나는 당신이 당신의 배열을 얻는 곳을 cars.length에게 경고했다.

1 단계 : 영문 페이지

<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $('#Button1').click(getCars); 
     }); 

     function getCars() { 
      $.ajax({ 
       type: "Post", 
       url: "Default.aspx/GetAllCars", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (response) { 
        var cars = response.d; 
        alert(cars.length); 
       }, 

       failure: function (msg) { 
        $('#output').text(msg); 
       } 
      }); 
     } 

    </script> 

2 단계 : 페이지 aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.Services; 
using System.Collections; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 


    [WebMethod] 
    public static Array GetAllCars() 
    { 
     ArrayList arrayList = new ArrayList(); 
     arrayList.Add(1); 
     arrayList.Add(2); 
     arrayList.Add(3); 
     return arrayList.ToArray(); 
    } 

} 
+0

감사합니다 형 : @ Sarashaya 사기꾼 – user3817516

+0

당신은 환영합니다. :) –

1

먼저 C# 및 JS 모두가 이해할 수있는 형식 인 JSON에 ArrayList를 변환해야합니다

var json = new JavaScriptSerializer().Serialize(arrayList); 

는 그런 다음 프런트 엔드 서버로부터이 JSON을 전송하는 방법이 필요합니다. 두 가지 방법이 있습니다 :

DOM의 빈 요소 (입력 컨트롤, div 등)에 넣은 다음 Javascript를 통해 읽을 수 있습니다.

또는 자바 스크립트를 사용하여 액세스 할 수있는 웹 서비스 끝점을 서버에 만듭니다.

가능한 세 번째 옵션은 RegisterClientScript를 사용하는 것입니다.하지만 자바 스크립트 서버 측을 빌드해야합니다.이 스크립트는 매우 까다로울 수 있으며 이러한 복잡한 작업에는 권장되지 않습니다.

가장 쉬운 방법은 DOM이지만 DOM 분석이 필요하기 때문에 가장 느립니다. 속도가 매우 느릴 수 있습니다. 또한 다소 오류가 발생하기 쉽습니다.

웹 서비스는 조금 더 구현하기가 어렵지만 두 가지 방법 중 빠릅니다. 또한 JS가 필요할 때 필요할 때 JSON을 빌드 할 수 있으므로 JS가 아직 없을 때 JS에 액세스하려고 할 때 실수를 줄일 수 있습니다.

어쨌든 JSON을 받으면 자바 스크립트 코드에서 JSON.Parse()를 사용하여 JSON을 javascript 객체로 변환 할 수 있습니다.

+0

설명해 주셔서 감사합니다. 이제는 분명합니다. :) @ Nate Kerkhofs – user3817516

0

당신은 C#에서

아래에는 JSON string.As를 얻을 수 Newtonsoft 라이브러리를 사용할 수 있습니다.

ArrayList arrayList = new ArrayList(); 
    arrayList.Add(1); 
    arrayList.Add(2); 
    arrayList.Add(3); 

    Newtonsoft.Json.JsonSerializer jsr = new Newtonsoft.Json.JsonSerializer(); 
    System.IO.StringWriter sw=new System.IO.StringWriter(); 
    Newtonsoft.Json.JsonTextWriter jtw = new Newtonsoft.Json.JsonTextWriter(sw); 
    jsr.Serialize(jtw, arrayList); 

    string jsArrayJSON = sw.ToString(); 

은 이제 프로그램의 흐름에 따라 방법과 자바 스크립트로 그 jsArrayJSON 문자열을 전달합니다. 자바 스크립트에서

은 JQuery와 단가

var jsArray = jQuery.parseJSON(jsArrayJSON); 
0
For this you have to use Ajax call. 

<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $('#Button1').click(getListofStudents); 
     }); 

     function getListofStudents() { 
      $.ajax({ 
       type: "Post", 
       url: "Default.aspx/getListofStudents", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (response) { 
        var ListofStudents= response.d; 
        alert(ListofStudents.length); 
       }, 

       failure: function (msg) { 
        $('#lblerror').text(msg); 
       } 
      }); 
     } 

    </script> 


And then on .cs file 

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.Services; 
using System.Collections; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 


    [WebMethod] 
    public static Array getListofStudents() 
    { 
     ArrayList ListofStudents= new ArrayList(); 
     ListofStudents.Add("jhon"); 
     ListofStudents.Add("Shon"); 
     ListofStudents.Add("Mohan"); 
     return ListofStudents.ToArray(); 
    } 

} 


This is one of the best example of getting work from .cs file using Json Service. 
관련 문제