2015-12-29 35 views
1

這裏是Web服務方法如何發佈數據(JSON格式)到Web服務方法,它是JSON格式返回響應在C#

[WebMethod] 
    public void GetEmployees(int pageNumber, int pageSize) 
    { 
     List<Employee> listEmployees = new List<Employee>(); 

     string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(cs)) 
     { 
      SqlCommand cmd = new SqlCommand("spGetEmployees", con); 
      cmd.CommandType = System.Data.CommandType.StoredProcedure; 

      cmd.Parameters.Add(new SqlParameter() 
      { 
       ParameterName = "@PageNumber", 
       Value = pageNumber 
      }); 

      cmd.Parameters.Add(new SqlParameter() 
      { 
       ParameterName = "@PageSize", 
       Value = pageSize 
      }); 

      con.Open(); 
      SqlDataReader rdr = cmd.ExecuteReader(); 
      while (rdr.Read()) 
      { 
       Employee employee = new Employee(); 
       employee.ID = Convert.ToInt32(rdr["Id"]); 
       employee.Name = rdr["Name"].ToString(); 
       employee.Gender = rdr["Gender"].ToString(); 
       employee.Salary = Convert.ToInt32(rdr["Salary"]); 
       listEmployees.Add(employee); 
      } 
     } 

     JavaScriptSerializer js = new JavaScriptSerializer(); 
     Context.Response.Write(js.Serialize(listEmployees)); 
    } 
} 

現在我需要使用控制檯或Web表單消費這種服務方法

+0

S你嘗試了什麼?什麼不適合你? –

+0

我試圖用Ajax調用和它的工作來調用這個方法。 – Anandb

+0

現在我想調用相同的使用c# – Anandb

回答

0

返回JSON字符串用靜態方法首先像下面

[WebMethod] 
    public static string GetEmployees(int pageNumber, int pageSize) 
    { 
     List<Employee> listEmployees = new List<Employee>(); 

     string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(cs)) 
     { 
      SqlCommand cmd = new SqlCommand("spGetEmployees", con); 
      cmd.CommandType = System.Data.CommandType.StoredProcedure; 

      cmd.Parameters.Add(new SqlParameter() 
      { 
       ParameterName = "@PageNumber", 
       Value = pageNumber 
      }); 

      cmd.Parameters.Add(new SqlParameter() 
      { 
       ParameterName = "@PageSize", 
       Value = pageSize 
      }); 

      con.Open(); 
      SqlDataReader rdr = cmd.ExecuteReader(); 
      while (rdr.Read()) 
      { 
       Employee employee = new Employee(); 
       employee.ID = Convert.ToInt32(rdr["Id"]); 
       employee.Name = rdr["Name"].ToString(); 
       employee.Gender = rdr["Gender"].ToString(); 
       employee.Salary = Convert.ToInt32(rdr["Salary"]); 
       listEmployees.Add(employee); 
      } 
     } 

     JavaScriptSerializer js = new JavaScriptSerializer(); 
     return js.Serialize(listEmployees); 
    } 
} 

呼叫此網頁上使用Ajax像下面

$.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "YourPageName.aspx/GetEmployees", 
       data: { pageNumber: 1, pageSize: 10 }, 
       dataType: "json", 
       success: function (data) { 
        var jsondata = JSON.parse(data.d); 
        for (var i = 0; i < jsondata.length; i++) { 
         //DO Your Work 
        } 


       }, 
       error: function (result) { 


       } 
      }); 
1

您可以使用此代碼POST到您的Web服務(TR要求類,T響應類)

protected T PostAsync<T, TR>(string serviceUrl, TR request) 
{ 
    using (var client = new HttpClient()) 
    { 
     var baseUrl = ""; 
     client.BaseAddress = new Uri(baseUrl); 
     client.DefaultRequestHeaders.Accept.Clear(); 
     client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

     var response = client.PostAsJsonAsync(serviceUrl, request).Result; 

     if (response.IsSuccessStatusCode) 
     { 
      var responseString = response.Content.ReadAsStringAsync().Result; 
      return JsonConvert.DeserializeObject<T>(responseString); 
     } 
    } 

    return default(T); 
} 

如果你想GET要求

protected T GetAsync<T>(string serviceUrl) 
{ 
    using (var client = new HttpClient()) 
    { 
     var baseUrl = ""; 
     client.BaseAddress = new Uri(baseUrl); 
     client.DefaultRequestHeaders.Accept.Clear(); 
     client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

     var response = client.GetAsync(serviceUrl).Result; 

     if (response.IsSuccessStatusCode) 
     { 
      var responseString = response.Content.ReadAsStringAsync().Result; 
      return JsonConvert.DeserializeObject<T>(responseString); 
     } 
    } 

    return default(T); 
} 
+0

謝謝它的工作:-) – Anandb

+0

@Anandb不客氣 –

相關問題