2014-09-20 1 views
1

아래 코드에 무엇이 잘못 되었나요? 왜 작동하지 않는지 알려주세요.Jquery.ajax를 사용하여 <> 목록을 가져올 수 없습니다.

aspx.cs 페이지의 webmethod. 내가 응용 프로그램 아무 일도 실행할 때 아래

[webmethod] 
    [ScriptMethod(ResponseFormat=ResponseFormat.Json)] 
    public static List<Problem> GetProblems() 
    { 
     List<Problem> allproblems = new List<Problem>(); 
     using (TMEntities tm = new TMEntities()) 
     { 
      allproblems = tm.Problems.ToList();  
     } 
     return allproblems; 
    } 

및 HTML

<script type="text/javascript"> 
    $(document).ready(function() { 
      $.ajax({ 
       type:"POST", 
       url: "WebForm1.aspx/GetProblems", 
       data: "{}", 
       datatype: "json", 
       contentType: "application/json; charset=utf-8", 
       success: function (data) { 
        alert('success'); 
       }, 
       failure: function (response) { 
        alert("fail"); 
       } 
      }); 
     }); 
</script> 

내가 오류 아래 브라우저에서 오류를 확인하려면 Ctrl + Shift + J를 누르면는

Failed to load resource: the server responded with a status of 500 (Internal Server Error) 
+0

ajax URL의 페이지 메서드로 어떻게 리디렉션 할 것으로 예상합니까? 오른쪽 WebForm1.aspx? GetProblems = true이면 Response 매개 변수 GetProblems에 대한 page_load가 true인지 확인합니다. GetProblems가 true 인 경우 GetProblems입니다. – mybirthname

+2

'GetProblems' 메소드를 디버깅 할 때 무엇이 ​​보입니까? (시작시 중단 점을 설정 한 다음 디버거에서 웹 응용 프로그램을 실행하십시오.) – Richard

+0

로컬에서 실행 중이므로 디버그 (클라이언트) 도구에서 네트워크 탭을 클릭하고 500 오류 URL을 확인하십시오. 서버가 500을 리턴하는 정확한 오류. 이유가있을 수 있으며 일부 DLL이 누락되었거나 다른 것일 수 있습니다. 따라서 클라이언트 디버그 도구가 이유를 제공합니다. 응용 프로그램을 DEBUG 모드로 실행하여 어쨌든 수행해야합니다. – codebased

답변

0
등장

TMEntities 생성자가 Problems 속성을 초기화 중입니까? 그렇지 않다면 아래 라인의 참조 예외!

allproblems = tm.Problems.ToList(); 

위 문제가 아니라면 Problem 클래스에 직렬화 문제가 있습니까? 한 번 확인하십시오

+0

페이지에서 동일한 코드를 실행하려고합니다. 로드하고 gridview의 데이터 소스를 모두 같게 만듭니다. gridview1.datasource = allproblems; gridview1.databind(); 잘 작동하지만 아약스와 작동하지 않습니다. (제발 도와주세요. – Bassem

0
[webmethod] 
    [ScriptMethod(ResponseFormat=ResponseFormat.Json)] 
    public static List<Problem> GetProblems() 
    { 
     List<Problem> allproblems = new List<Problem>(); 
     using (TMEntities tm = new TMEntities()) 
     { 
      allproblems = tm.Problems.ToList();  
     } 
     return allproblems; 
    } 

나는 자바 스크립트 코드를 확인합니다. 이 코드는 괜찮습니다. BT 문제는 C# 코드입니다.

[webmethod]을 [WebMethod]으로 변경하십시오. 나는 너의 문제를 해결하기 바란다. 해결되지 않으면 ProblemTMEntities 클래스 구조를 제공하십시오.

+0

잘 알려주세요. WebMethod하지만 여전히 동일한 문제 :(... ... 나는 페이지로드시 동일한 코드를 실행하고 gridview의 데이터 소스를 allproblems와 동일하게 만듭니다. gridview1.datasource = allproblems; gridview1.databind(); 그것은 잘 작동하지만 아약스와 함께 작동하지 않습니다. (제발 도와주세요. – Bassem

+0

jQuery 데이터 테이블을 사용하십시오. 전체 프로젝트를 메일로 보내주십시오. 문제를 해결하려고합니다. –

+0

감사하지만 메일은 무엇입니까? – Bassem

관련 문제