2016-10-03 4 views
1

나는 내 [의 WebMethod]에 문제가 있습니다.asp.net 웹 양식은 [의 WebMethod]

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public static List<Contract> PopulateDataByJquery(int pageNo, int noOfRecord) 
    { 
     System.Threading.Thread.Sleep(2000); 
     Entities4 db = new Entities4(); 
     List<Contract> data = new List<Contract>(); 
     int skip = (pageNo - 1) * noOfRecord; 
     data = db.Contracts.Include("PhysicalPerson").Include("Product").OrderBy(a => a.Id).Skip(skip).Take(noOfRecord).ToList(); 
     return data; 
    } 

내가 아약스 오류가 발생하면 제발 도와주세요! 어떻게 고쳐야할지 모르겠다.

+0

아약스 오류가 무엇을 읽을 들어? – krlzlx

답변

2

당신은 당신의 Ajax 호출을 일부 변경을해야하고 WebMethod

function populateData(pageIndex) { 
        // populate data from database 
        $.ajax({ 
         url: "Docs.aspx/PopulateDataByJquery", 
         data: "{pageNo: pageIndex, noOfRecord: 7}", 
         type: "POST", 
         dataType: "json", 
         contentType: "application/json; charset=utf-8", 
         success: OnSuccess, 
         error: onError 
        }); 
       } 
       function OnSuccess(data) { 

        alert('good'); 
       } 
       function onError() { 
        alert('Failed!'); 
        $('#LoadingPanel').css('display', 'none'); 
       } 

변경하여 WebMethod

[WebMethod] 
    public static string PopulateDataByJquery(int pageNo, int noOfRecord) 
    { 
     System.Threading.Thread.Sleep(2000); 
     Entities4 db = new Entities4(); 
     List<Contract> data = new List<Contract>(); 
     int skip = (pageNo - 1) * noOfRecord; 
     data = db.Contracts.Include("PhysicalPerson").Include("Product").OrderBy(a => a.Id).Skip(skip).Take(noOfRecord).ToList(); 
     JavaScriptSerializer TheSerializer = new JavaScriptSerializer() 
     var TheJson = TheSerializer.Serialize(data); 
     // for this you need to add using System.Web.Script.Serialization; 
     return TheJson; 
    } 

this

+0

aspx 페이지는 디렉토리에있을 수 있습니다뿐만 아니라 PO에서 말하는 Q. 직접 메서드를 호출 할 수 없습니다, 당신은 URL에 디렉토리 이름을 작성해야합니다 – Bharat

+0

* aspx 페이지는 디렉토리 에서뿐만 아니라 Q에서 말하는 PO 수 있습니다 * 나 아무데도 보지 못했습니까, 당신은 나를 간단히 설명해 주시겠습니까? 그리고 그렇습니다. 그렇습니다. 그것은'PO '가 아닙니다'OP'입니다. –

+1

* Json ** 데이터를 반환 할 때 내 [WebMethod]에 문제가 있습니다. Entity Framework *를 사용하여 DB에서 을 DB로 가져 왔을 때 Json을 반환하는 동안 오류가 발생했습니다. 어디서나 WebMethod를 호출 할 수 없기 때문에 URL을 변경하지 않아도됩니다. 데이터를 serialize 할 필요가 없습니다. FYI – Bharat